这看起来很简单,但它让我头疼。我的事件表中有一个名为'date_time'的列,它的类型是datetime。
我需要编写一个将在白天获取事件的查询。
表格示例
============================
| id | date_time |
============================
| 5 | 2009-03-27 14:16:00 |
============================
现在我需要获取Id = 5的事件,除了我只有一个日期(unix时间戳)可以使用。我尝试了很多东西,比如转换成mysql格式,并在2009-03-27 00:00:00和2009-03-28 00:00:00之间选择,但我无法让它工作。
最好的方法是什么?
非常感谢。
答案 0 :(得分:8)
SELECT * FROM table
WHERE date_time BETWEEN '2009-03-27 00:00:00' AND '2009-03-27 23:59:59'
应该这样做。
或者,试试这个:
SELECT * FROM table WHERE DATE(date_time) = '2009-03-27'
DATE()函数提取日期时间列的日期部分。
答案 1 :(得分:0)
select * from table WHERE date(date_time) = '2009-03-27' works for me
如果您有unix时间戳,也可以
select * from table WHERE UNIX_TIMESTAMP(date_time) = your_timestamp
答案 2 :(得分:0)
如果时间戳包含小数秒,则BETWEEN不安全。这总是安全的:
SELECT *
FROM table
WHERE date_time >= '2009-03-26 00:00:00' AND date_time < '2009-03-27 00:00:00'