如何按时间选择记录而不考虑日期

时间:2021-06-27 22:58:27

标签: mysql sql

对不起我的英语。我为上一篇帖子道歉(我不知道发布图片是不行的)。

我的数据库中有一个日期时间列。

start
     2021-06-28 08:30:00
     2021-06-29 08:00:00
     2021-06-30 08:00:00

我需要按时间选择。不管哪一天。我需要选择时间等于 8:00 的所有记录。

也就是说,我应该带来结果:

2021-06-29 08:00:00
2021-06-30 08:00:00

我尝试使用 HOUR(start) ='08:00' 子句,但它没有解决它,因为它适用于整数。有谁知道我怎么做这个查询?

2 个答案:

答案 0 :(得分:1)

@astentx 正在引用具有正确解决方案的帖子。特别是您正在寻找的:

WHERE TIME(`start`) = '08:00:00'

答案 1 :(得分:0)

这个怎么样?

WITH                                                                                                                                                        
indata(ts) AS (
          SELECT TIMESTAMP '2021-06-28 08:30:00'
UNION ALL SELECT TIMESTAMP '2021-06-29 08:00:00'
UNION ALL SELECT TIMESTAMP '2021-06-30 08:00:00'
)
SELECT * FROM indata WHERE CAST(ts AS TIME)='08:00:00';

-- out          ts          
-- out ---------------------
-- out  2021-06-29 08:00:00
-- out  2021-06-30 08:00:00