在SQL语句中,如何比较保存为TIMESTAMP的日期和YYYY-MM-DD格式的日期?
例如: SELECT * FROM table WHERE timestamp = '2012-05-05'
SELECT * FROM table WHERE timestamp = '2012-05-05'
我希望此查询返回指定日期中所有带有时间戳的行,但它仅返回具有午夜时间戳的行。
谢谢
您可以使用该DATE()函数提取时间戳记的日期部分:
DATE()
SELECT * FROM table WHERE DATE(timestamp) = '2012-05-05'
但是,如果您在timestamp列上有索引,则这样做会更快,因为它可以利用索引:
SELECT * FROM table WHERE timestamp BETWEEN '2012-05-05 00:00:00' AND '2012-05-05 23:59:59'