如何在两个特定日期之间从Mysql获取数据

时间:2015-07-11 18:05:08

标签: php mysql date

我想在2个日期之间从Mysp With Php获取数据。 我无法得到这个.. 这是我的代码。 这些行用于日期间隔...

date_default_timezone_set("EST");
$today = date('d-m-Y');
$date_to = $today;
$date_to = strtotime("-7 days", strtotime($date_to)); //-7 days for last week. -30 for last week
$date_to = date("d-m-Y", $date_to);

现在这是我正在运行的查询..我有两个条件。 1数据应在$today$date_to日期之间。 assigned应该等于1。已分配是数据库表'requests'中的一列。

$get_req = "SELECT * FROM `requests` WHERE `req_date` between '$today' AND '$date_to' AND `assigned`='1'";
$result = mysqli_query($dbc, $get_req);
while ($res = mysqli_fetch_assoc($result)){
    $driver_id = $res['assigned_driver_id'];
    $req_id = $res['req_id'];
    $req_title = $res['request_title'];
    $req_price = $res['price'];
    $req_time = $res['request_time'];
    $req_date = $res['req_date'];
    $driver = $res['driver_name'];
}

我无法获得所需的结果。问题仅在日期查询中。我的意思是在日期A到日期之间B. req_date`在' $ today' AND' $ date_to' 它很完美。

请告诉我应该怎么做才能解决它。我想获得过去7天的记录。

2 个答案:

答案 0 :(得分:2)

我不知道您的数据库结构是什么,但您可以更改代码并执行以下操作:

您的PHP代码

date_default_timezone_set("EST");
$today = time();
$date_to = strtotime("-7 days"); //-7 days for last week. -30 for last week

您的查询:

$get_req = "SELECT * FROM `requests` WHERE UNIX_TIMESTAMP(`req_date`) between '$today' AND '$date_to' AND `assigned`='1'";

答案 1 :(得分:0)

这是您的解决方案。您需要像这样更改查询。

STR_TO_DATE(yourdatefield, '%d-%m-%Y') > CURDATE() - INTERVAL 7 DAYS
相关问题