gpt4 book ai didi

sql - SQL 中的时间间隔

转载 作者:行者123 更新时间:2023-12-04 04:50:40 26 4
gpt4 key购买 nike

我正在尝试编写两个 SQL 语句。第一个会在晚上 11 点到早上 6 点之间显示,第二个不会在晚上 11 点到早上 6 点之间显示。

我想弄清楚的是当我说 NOT between

WHERE TO_CHAR(MOPACTIVITY.MOPSTART, 'hh24:mi') NOT BETWEEN '23:00' AND '06:00'

我得到了“23:00”和“06:00”之间的记录。这似乎与我在 SQL 中要求的相反。那是怎么回事?

最佳答案

一种解决方案是使用 'SSSSS' format mask .它显示午夜后的秒数,非常适合处理时间而不管日期元素。

06:00 和 23:00 之间的时间是

select * from t23
where to_number(to_char(some_date_coll, 'SSSSS')) is between (6*60*24) and (23*60*24);

23:00 和 06:00 之间的时间是
select * from t23
where to_number(to_char(some_date_coll, 'SSSSS')) < (6*60*24)
or to_number(to_char(some_date_coll, 'SSSSS')) > (23*60*24);

或者在第一个查询中使用 NOT BETWEEN。

我保留了扩展形式的算术,因为它比硬编码的秒数更容易理解(和修改)。

关于围绕索引列包装函数的性能影响的常见警告适用于此处。

关于sql - SQL 中的时间间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17492880/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com