求救!SQL查询判断当前时间是否为上班时间?

lifehappy2010 2011-10-18 09:03:14
如题,怎么判断当前系统时间是否为一天的早上8点到下午5点这个时间范围内?
...全文
430 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
mzy9950012 2012-05-28
  • 打赏
  • 举报
回复
楼上的例子 判断都不是很准确 一改时间 还什么没变化
lifehappy2010 2011-10-18
  • 打赏
  • 举报
回复
非常感谢。
[Quote=引用 2 楼 luoyoumou 的回复:]

SQL code
-- 不考虑周六、日及节假日的话,可以简单这样写:
SELECT (case when to_char(sysdate,'HHMI')<'0800' OR to_char(sysdate,'HHMI')>'1700'
then '非上班时间'
else '上班时间' end) as "现在是否为上班时间"
FROM dua……
[/Quote]
习惯孤独 2011-10-18
  • 打赏
  • 举报
回复
进来学习下,二楼很详细
jfhyn 2011-10-18
  • 打赏
  • 举报
回复

select case
when to_char(sysdate, 'hh24miss') between '080000' and '165959' then
'上班时间'
else
'下班时间'
end
from dual;
luoyoumou 2011-10-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 opps_zhou 的回复:]

to_char(sysdate,'hh24') between '08' and '17'
[/Quote]

-- 不能简单以“小时”去判断(应该以小时+分钟去判断),例如:要是现在是 17:25分呢?按照楼主的意思应该是下班啦(17点下班),
-- 而你单单以“小时”去判断的话,17点属于“上班时间”
luoyoumou 2011-10-18
  • 打赏
  • 举报
回复
-- 不考虑周六、日及节假日的话,可以简单这样写:
SELECT (case when to_char(sysdate,'HHMI')<'0800' OR to_char(sysdate,'HHMI')>'1700'
then '非上班时间'
else '上班时间' end) as "现在是否为上班时间"
FROM dual;
opps_zhou 2011-10-18
  • 打赏
  • 举报
回复
to_char(sysdate,'hh24') between '08' and '17'

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧