我如何获得今天日期的mysql结果?

时间:2009-09-15 13:06:32

标签: sql mysql

我正在尝试从今天插入的表中提取结果。每个插入都标有时间戳。

如果我进行如下查询:

SELECT * 
  FROM table 
  WHERE added > DATE_SUB(NOW(), INTERVAL 1 DAY) 

似乎我得到的东西确实落在今天的日期,但也是24小时前的东西。也许我正在看东西。

我不想看到24小时前的东西......

5 个答案:

答案 0 :(得分:4)

您可以extract the date part时间戳字段并将其与the current date进行比较。

SELECT x,y,z FROM t WHERE Date(added)=Curdate()

答案 1 :(得分:2)

你可以使用mysql将日期与午夜的日期时间值进行比较的技巧:

SELECT * FROM table WHERE added >= CURRENT_DATE

这样做的好处是它可以使用索引。

答案 2 :(得分:2)

“间隔1天”并不表示“同一日历日”,它表示“24小时内”。在许多情况下这很有用。比如,您可能想说,向我显示过去24小时内对我的帖子做出的所有回复。如果我在早上到达工作岗位时遇到这样的疑问,它会告诉我自昨天早上我提出的所有回复,以及我到达之前今天早上的回复。这可能是我想知道的。

显然它在你的情况下没用,所以......用别的东西!就像其他海报所说的那样。

答案 3 :(得分:2)

我倾向于使用TO_DAYS()将时间转换为日期数字,例如

SELECT * 
  FROM table 
  WHERE TO_DAYS(added)=TO_DAYS(NOW())

答案 4 :(得分:0)

SELECT * 
FROM table 
WHERE DATE(added) = DATE(NOW()) 

DATE(添加)会从您的日期中删除小时,分钟和秒,如果它们在那里。

NOW()返回今天的日期和时间。

DATE(NOW())返回今天的日期。

因此,如果执行WHERE DATE(添加)= DATE(NOW()),则仅会获得日期为今天的日期的结果。