最近几个小时的sql记录

Aut*_*cus 2 php mysql sql

我在mysql表中有记录,我想知道过去3,7和12小时有多少记录.那个sql会是什么?我的日期字段格式为

2010-08-09 09:52:27 
2010-08-09 09:52:27 
2010-08-09 09:52:27 
2010-08-09 10:44:46 
2010-08-09 10:44:46 
2010-08-09 11:58:27 
2010-08-09 14:48:22 
2010-08-09 14:48:22 
Run Code Online (Sandbox Code Playgroud)

OMG*_*ies 7

过去三个小时:

WHERE column BETWEEN DATE_SUB(NOW(), INTERVAL 3 HOUR)
                 AND NOW()
Run Code Online (Sandbox Code Playgroud)

过去七个小时:

WHERE column BETWEEN DATE_SUB(NOW(), INTERVAL 7 HOUR)
                 AND NOW()
Run Code Online (Sandbox Code Playgroud)

过去十二小时:

WHERE column BETWEEN DATE_SUB(NOW(), INTERVAL 12 HOUR)
                 AND NOW()
Run Code Online (Sandbox Code Playgroud)

如果您想将数据指定为字符串,请使用:

WHERE column BETWEEN DATE_SUB(STR_TO_DATE('2010-07-08 07:57:45', '%Y-%m-%d %T'), INTERVAL 3 HOUR)
                 AND STR_TO_DATE('2010-07-08 07:57:45', '%Y-%m-%d %T')
Run Code Online (Sandbox Code Playgroud)

......但老实说,你也可以使用它:

WHERE column BETWEEN STR_TO_DATE('2010-07-08 04:57:45', '%Y-%m-%d %T')
                 AND STR_TO_DATE('2010-07-08 07:57:45', '%Y-%m-%d %T')
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,那么我想知道列是否将值存储为字符串/ varchar而不是DATETIME.

参考: