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



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

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

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(='00800',但它不能解决问题,因为它适用于integer。有人知道我该怎么做这个查询吗?

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

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

这个怎么样?

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

最新更新