【问题标题】:MySQL query select all were date is equal to today on datetimeMySQL查询选择所有日期等于今天的日期时间
【发布时间】:2015-12-19 11:14:41
【问题描述】:

我有一个类似这样的数据库表:

Col_1    |   Datetime
test1      2015-12-19 09:00:00
test2      2015-12-18 12:30:00
test3      2015-12-19 10:00:00
test4      2015-12-19 16:45:00

我试图在我的查询中选择 datetime 等于今天日期的所有结果,尽管当我只是使用类似的东西时:

$today = date("Y-m-d"); SELECT * FROM table WHERE datetime = '$today'

它似乎不起作用?如果我将时间添加到$today,它只会选择那些等于当前时间的结果,这不是我想要的?

知道如何做到这一点吗?我什至走到了这完全愚蠢的地步(尽管我编写代码时大约是凌晨 3 点):

   $now = date("Y-m-d H:m:s", strtotime('midnight'));
   $todays = date(strtotime('midnight'));
   $take24hours = date("Y-m-d H:m:s", strtotime('-24 hours', $todays));

    $results = mysqli_fetch_assoc(mysqli_query($conn, "SELECT * FROM table WHERE  date_added > '$take24hours' AND date_added < '$now')"));

【问题讨论】:

  • SELECT * FROM table WHERE date(`datetime`) = current_date;
  • current_date; 是 select 语句中的自动函数吗?
  • current_date 是mysql提供的ansi标准日期函数
  • 似乎工作得很好,如果您添加您的评论作为答案,我很乐意接受它是正确的。感谢您的帮助!

标签: php mysql datetime select


【解决方案1】:

完全可以在 sql 事务中完成(不需要 php 日期格式):

SELECT * FROM table WHERE date(`datetime`) = current_date;

【讨论】:

    【解决方案2】:

    CURDATE() 将获取当前日期。

    SELECT * FROM table where DATE(date)=CURDATE()

    【讨论】:

      猜你喜欢
      • 2015-10-28
      • 2012-09-22
      • 1970-01-01
      • 2017-08-14
      • 2012-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多