有时我在数据库中有一个日期时间或时间戳列,例如,我需要选择所有记录,其中包含今天更新的时间戳记。哪个是检查时间戳/日期时间是否属于指定日期的最佳方法
我通常不喜欢这样:
SELECT * FROM mytable WHERE CAST(TS AS DATE) = CURDATE();
SELECT * FROM mytable WHERE CAST(TS AS DATE) = '2009-11-01';
此外,它可以使用DATE()函数,而不是投:
SELECT * FROM mytable WHERE DATE(TS) = CURDATE();
的问题是,哪种方式更正确,更快?因为我不知道所有记录CAST是一个非常好的主意,也许有更好的办法...
此查询无法按预期工作。请记住,TS的类型是TIMESTAMP。 UNIX_TIMESTAMP()返回INT。 – nightcoder 2009-11-07 13:39:22