在MySql中,如何获取所有在UTC时间凌晨5点小于或等于今天的行?

时间:2019-01-31 00:20:18

标签: mysql

我有一个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如何存储其日期时间数据。

2 个答案:

答案 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个小时。