只需要从datetime字段按日期从MySQL数据库中获取记录
这似乎很简单,但一直让我头痛。我的events表中有一列名为“date\u time”,它的类型是datetime 我需要编写一个查询,它将按天获取事件 表格示例只需要从datetime字段按日期从MySQL数据库中获取记录,mysql,datetime,Mysql,Datetime,这似乎很简单,但一直让我头痛。我的events表中有一列名为“date\u time”,它的类型是datetime 我需要编写一个查询,它将按天获取事件 表格示例 ============================ | id | date_time | ============================ | 5 | 2009-03-27 14:16:00 | ============================ 现在我需要获取Id=5的事件,除了我只有一个
============================
| 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之间进行选择,但都没有成功
最好的方法是什么
非常感谢
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'
函数提取datetime列的日期部分
select * from table WHERE date(date_time) = '2009-03-27' works for me
如果您有unix时间戳,也可以这样做
select * from table WHERE UNIX_TIMESTAMP(date_time) = your_timestamp
如果时间戳包含小数秒,则“时间间隔”是不安全的。这总是安全的:
SELECT *
FROM table
WHERE date_time >= '2009-03-26 00:00:00' AND date_time < '2009-03-27 00:00:00'
选择*
从桌子上
其中日期时间>='2009-03-26 00:00:00'和日期时间>'2009-03-27 00:00:00'
DATE()函数方法可能会强制执行表扫描。我选择了第二个示例。谢谢:)您的UNIX\u TIMESTAMP方法不起作用,因为UNIX\u时间戳是第二个。