2011-06-09 32 views
4

我有一个数据库,它用DATETIME格式存储每个条目的日期。我只需要检索比昨天更大的结果。我昨天说,因为我需要当前和今后的结果。如何获取比昨天更大的结果

目前我有以下。

$yest = mktime(0, 0, 0, date("m"), date("d")-1, date("Y"));
$yest_date = date('n-j-o', $yest);

SELECT * FROM TBL_NAME WHERE DATE_FORMAT(event_date, \"%c-%d-%Y\") > '".$yest_date."'

这不会给任何结果,即使我知道有事件。任何帮助将不胜感激。

回答

11

SELECT * FROM tbl_name WHERE event_date > DATE_SUB(NOW(), INTERVAL 1 DAY)

+0

完美。谢谢:) – jimcone 2011-06-09 16:01:25

+1

这不起作用,因为它不会删除时间部分。昨天很可能从'00:00:00'开始,而不是'NOW() - 1' – Tomalak 2011-06-09 16:02:24

4
SELECT * FROM TBL_NAME WHERE event_date >= CURDATE() 
4
WHERE event_date > date(now()) - 1 
3
Select * from tbl_name WHERE event_date > DATE_SUB(curdate(), INTERVAL 1 DAY) 

这应该有它从昨天开始上班,而不是24小时从运行查询的时间回来。

如果你在cron中运行,你可能应该验证数据库与服务器的时区,这样你就不会在两天后运行它,打算在12:01运行,但实际运行在11:01由于差异。

0

这个人做的是从今天的第一分钟到今天的最后一分钟选择数值。

WHERE scheduled_start_timestamp >= date() AND scheduled_start_timestamp <= date() + 1 
1
SELECT * FROM tbl_name WHERE field_date > now()- interval 1 day;