gpt4 book ai didi

sql - 从 unix 时间戳字段中获取 DATE 或 DATE AND TIME 范围内的记录

转载 作者:行者123 更新时间:2023-11-29 07:11:24 24 4
gpt4 key购买 nike

我在 mysql 数据库中以 unix 时间戳保存日期和时间。我只想获取特定日期范围内的记录(示例 1)或两者都包含日期和时间(示例 2)。

示例 1:从日期 = 20/10/2010 到 = 22/10/2010 获取记录

示例 2:从日期 = 20/10/2010 到 = 22/10/2010,从时间 = 13:20:00 到 = 01:10:00 获取记录

这是什么查询?

非常感谢您的帮助

最佳答案

使用 FROM_UNIXTIME function将 Unix 时间戳转换为 DATETIME 数据类型:

WHERE FROM_UNIXTIME(your_column) BETWEEN '2010-10-20' 
AND '2010-10-22'

BETWEEN 运算符具有包容性,您需要使用 MySQL 的标准日期格式 (YYYY-MM-DD) 将字符串隐式转换为 DATETIME,否则您将不得不使用 STR_TO_DATE 将字符串转换为约会时间。如果时间部分未包含在字符串中,则默认为午夜。意思是“2010-10-20”==“2010-10-20 00:00:00”。

您的第二个要求不清楚何时应用时间。如果开始日期为 13:20,结束日期为 01:10 - 使用:

WHERE FROM_UNIXTIME(your_column) BETWEEN '2010-10-20 13:20:00' 
AND '2010-10-22 01:10:00'

最后,在列上使用 FROM_UNIXTIME 函数会使列上的索引变得无用。

关于sql - 从 unix 时间戳字段中获取 DATE 或 DATE AND TIME 范围内的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4273981/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com