对不起我的英语。我为上一篇帖子道歉(我不知道发布图片是不好的(。
我的数据库中有一个日期时间列。
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