我有一个MySql DB,该数据库由一个表保存所有数据。我只需要检索那些在UTC时间凌晨5点时具有startup_date小于或等于今天的行。我尝试查找,但这有点令人困惑。有人可以为我提供一种干净的好方法吗?
我的表格如下:
tbl_MyData
***********
id name city startup_date
1 test1 New York 2020-01-10 18:19:30
2 test2 Houston 2019-01-30 05:00:00
3 test3 Chicago 2020-02-09 05:00:00
从上述数据中,我的查询应仅返回行ID号2,因为这是满足我的startup_date小于或等于今天凌晨5点的条件的唯一行。另外,我不确定是否需要任何类型的UTC函数,因为我不确定mysql如何存储其日期时间数据。
答案 0 :(得分:1)
您尝试过哪种SELECT语句,表的数据类型是什么?如果startup-date是MySQL中的日期类型,则应为
SELECT * FROM tbl_MyData WHERE startup_date<=(whatever the value needs to be)
答案 1 :(得分:1)
使用简单的WHERE
子句
SELECT t.* FROM mytable WHERE t.startup_date <= DATE_ADD(CURDATE(), INTERVAL 5 HOUR)
CURDATE()
函数返回当前日期而没有时间(因此今天从今天的午夜开始),而DATE_ADD()
函数将其添加5个小时。