2011-12-17 90 views

回答

145

documentation for date/time functions來看,你應該能夠做一些事情,如:

SELECT * FROM FOO 
WHERE MY_DATE_FIELD >= NOW() - INTERVAL 1 DAY 
+0

完美的作品,謝謝! – user1092780 2011-12-17 11:41:19

+0

如何得到現在如此..意味着當前日期到所有記錄在db中可用。 ?這只是一天,但我現在需要記錄所有記錄。 @jon – 2015-09-03 07:16:50

6

當然,你可以:

SELECT * FROM table 
WHERE DateStamp > DATE_ADD(NOW(), INTERVAL -1 DAY) 
28

注意結果可能會比你預期的稍有不同。

NOW()返回DATETIME

INTERVAL按名稱命名,例如, INTERVAL 1 DAY = 24 hours

所以如果你的腳本是cron'd運行在03:00,它會錯過first three hours of records from the 'oldest' day

要得到全天使用CURDATE() - INTERVAL 1 DAY。這將回到前一天的開始,無論腳本何時運行。

+1

這是對接受答案的非常有用的補充,謝謝。 – 2016-09-30 09:59:27

0

在搜索領域是時間戳和你想從0小時查找記錄昨天和0小時今天使用建設

MY_DATE_TIME_FIELD between makedate(year(now()), date_format(now(),'%j')-1) and makedate(year(now()), date_format(now(),'%j')) 

代替

now() - interval 1 day