2009-09-15 56 views
0

我试图从今天插入的表中获取结果。每个插入标记有一个时间戳。我如何获得今天的日期的MySQL结果?

如果我做一个查询,如:

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

看来我得到的东西,做今天的日期下跌,但也从东西24小时之前。也许我正在看东西。

我不希望看到来自24个小时前的东西...

回答

2

你可以使用MySQL的日期比较相比,日期时间值,当在午夜被招:

​​

这具有可以使用索引的优势。

+0

> =会更好,不是吗? – 2009-09-15 13:29:52

+0

你是对的。这是一个错字。谢谢! – longneck 2009-09-15 14:03:38

3

“间隔1天”并不意味着“同一日历日”,这意味着“24小时内”。有很多情况下这是有用的。喜欢,你可能想说,让我看看在过去24小时内对我的帖子所做的所有回复。如果我在早上上班时遇到了这样的问题,它会告诉我自从我昨天上午问起以来的所有反应,以及在我抵达之前在今天上午发出的那些反应。这可能是我想知道的。

显然它在你的情况下没有用,所以...使用别的东西!就像其他海报所建议的一样。

1

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

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