我有一个包含日期列的表格。我想检索不属于星期日 7、8、9、星期一 8、9、10 等的记录。我该怎么做呢。
如果我使用带有“not in”的“and”子句,那么所有行都会消失,而不仅仅是几个小时。
select * from xyz
where (EXTRACT(dow from created) not in (0)
and EXTRACT(HOUR FROM created) not in (8,9,10))
然后星期日的所有行都消失了。
最佳答案
假设 timestamp
专栏:
SELECT *
FROM xyz
WHERE CASE EXTRACT(dow FROM created)
WHEN 0 THEN EXTRACT(h FROM created) NOT IN (7,8,9)
WHEN 1 THEN EXTRACT(h FROM created) NOT IN (8,9,10)
-- other day ...
ELSE TRUE -- remaining days pass as a whole
END
关于sql - 选择没有几个小时的一天的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23745226/