mysql timestamp,where子句用PHP过滤今天的记录

时间:2014-08-28 14:51:40

标签: php mysql timestamp localhost

我有带时间戳字段的mysql表,以这种方式记录日期时间:CURRENT_TIMESTAMP

我只想要一个查询来限制今天的所有记录,

SELECT (*) FROM mytable WHERE stampfield = CURDUTE()

我尝试过CURDATE()但是没有用!

我在表中有另一个字段日期,并且CURDATE()工作正常,但是使用此时间戳字段它不起作用!!

先谢谢

2 个答案:

答案 0 :(得分:1)

时间戳字段显然包含时间值。 curdate()没有。由于您正在执行date+time v.s. date,因此PHP会自动将日期值扩展为0时间,例如

curdate() = '2014-08-28'
timestamp = '2014-08-28 12:34:45'

timestamp = curdate() -> '2014-08-28 00:00:00' = '2014-08-28 12:34:45' - > false

date(timestampfield) = curdate();

代替。

答案 1 :(得分:0)

您需要从时间戳中提取日期部分,一种方法是使用DATE

SELECT (*) 
FROM mytable 
WHERE DATE(stampfield) = CURDATE()