Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
只需要从datetime字段按日期从MySQL数据库中获取记录_Mysql_Datetime - Fatal编程技术网

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

只需要从datetime字段按日期从MySQL数据库中获取记录,mysql,datetime,Mysql,Datetime,这似乎很简单,但一直让我头痛。我的events表中有一列名为“date\u time”,它的类型是datetime 我需要编写一个查询,它将按天获取事件 表格示例 ============================ | id | date_time | ============================ | 5 | 2009-03-27 14:16:00 | ============================ 现在我需要获取Id=5的事件,除了我只有一个

这似乎很简单,但一直让我头痛。我的events表中有一列名为“date\u 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之间进行选择,但都没有成功

最好的方法是什么

非常感谢

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时间戳是第二个。