需要从日期时间字段按日期从MySQL数据库中获取记录

时间:2009-03-27 00:06:59

标签: mysql datetime

这看起来很简单,但它让我头疼。我的事件表中有一个名为'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之间选择,但我无法让它工作。

最好的方法是什么?

非常感谢。

3 个答案:

答案 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'