【发布时间】:2016-06-02 20:08:34
【问题描述】:
我有一个包含用户系统登录信息的表。
我想报告任何“非工作时间”活动 - 时间被确定为第二天 20:00 到 06:00 之间。
我可以运行一个简单的查询来返回我需要的信息:
select to_char(logon_time, 'YYYY-MM-DD HH24:MI') ,
username from sessions
where to_char(logon_time, 'YYYY-MON-DD HH24:MI')
between '&YEAR-&MONTH-01 20:00' and '&YEAR-&MONTH-02 06:00';
请注意,我必须在此查询中手动定义各个“天” - 在本例中,它是从每月 01 日的 20:00 到每月 02 日的 06:00。
我想做的是运行一个大日期范围的报告(例如,从年初到 SYSDATE),自动迭代各个日期,同时考虑到子查询已经有跨越多天的日期范围子句之间的特定。
我不知道如何实现这一目标。任何线索都非常感谢!
【问题讨论】:
-
如果您能向我们展示一些示例数据,那就太好了。一张图片胜过一千个 SQL 问题。
-
您可以将时间部分和日期部分作为单独的条件进行比较。