【问题标题】:How to get data from Mysql between two specific dates如何在两个特定日期之间从 Mysql 获取数据
【发布时间】:2015-09-30 08:25:25
【问题描述】:

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

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' 和 '$date_to' 之间 效果很好。

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

【问题讨论】:

  • req_dated-m-Y 格式吗?我认为这将是YYYY-MM-DD 中的日期或日期时间列(mysql 日期格式,而不是 PHP date 代码)。
  • 不,我对数据库使用了相同的格式。 (DD-MM-YYYY)
  • 什么是列类型? dev.mysql.com/doc/refman/5.6/en/datetime.html 如果是日期/日期时间,您可以使用一些预定义的函数来计算出星期、月份等。stackoverflow.com/questions/7391718/…
  • 列类型为varchar
  • 这就是between 不起作用的原因。就目前而言,mysql 只是认为它是文本。它应该是datedatetime 列(您需要更新现有数据)。也许这会有用,stackoverflow.com/questions/15396058/…

标签: php mysql date


【解决方案1】:

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

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

【讨论】:

    【解决方案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'";
    

    【讨论】:

    猜你喜欢
    • 2015-04-24
    • 1970-01-01
    • 2018-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-19
    相关资源
    最近更新 更多