Oracle:Decode在时间范围中的使用.
2010-04-15 15:55
295 查看
数据表里有一个字段叫test_Time,存储的内容为测试时间,yyyy-mm-dd HH24:Mi:SS,
我在做查询的时候需要下一个sql,需要select test_time出来,如果test_Time的HH24:Mi:SS在7:00:00和19:00:00返回白班,否则返回夜班,这个decode不 知道怎么写,我尝试过直接把time的小时截取出来,但是不知道如何比较,不能转换为数字类型的出来,把小时to_date(截取的小 时,‘HH24:Mi:SS')转换之后它又自动在前面加上了天,我不知道怎么写这个decode,知道的大侠指点一下啊,拜领!!
select case when to_number(to_char(test_time, 'hh24')) between 7 and 19 then '白班'
else '夜班'
end
from (select to_date('2008-12-5 10:00:00', 'yyyy-mm-dd hh24:mi:ss') test_time
from dual
) t;
SQL> SELECT MYDATE,
2 DECODE(SIGN(MYDATE-TO_DATE(TO_CHAR(MYDATE,'YYYY-MM-DD')||'07:00:00','YYYY-MM-DD HH24:MI:SS'))
3 *SIGN(TO_DATE(TO_CHAR(MYDATE,'YYYY-MM-DD')||'19:00:00','YYYY-MM-DD HH24:MI:SS')-MYDATE),
4 1,'Morning Shift',
5 0,'Morning Shift',
6 'Afternoon Shift') CLASS_TYPE
7 FROM TABLE_NAME TT;
MYDATE CLASS_TYPE
-------------------------------------------------- ---------------
2008-12-3 6:30:55 Afternoon Shift
2008-12-3 10:42:33 Morning Shift
2008-12-3 19:22:36 Afternoon Shift
2008-12-3 19:00:00 Morning Shift
2008-12-4 7:00:00 Morning Shift
Tracy Xu
我在做查询的时候需要下一个sql,需要select test_time出来,如果test_Time的HH24:Mi:SS在7:00:00和19:00:00返回白班,否则返回夜班,这个decode不 知道怎么写,我尝试过直接把time的小时截取出来,但是不知道如何比较,不能转换为数字类型的出来,把小时to_date(截取的小 时,‘HH24:Mi:SS')转换之后它又自动在前面加上了天,我不知道怎么写这个decode,知道的大侠指点一下啊,拜领!!
select case when to_number(to_char(test_time, 'hh24')) between 7 and 19 then '白班'
else '夜班'
end
from (select to_date('2008-12-5 10:00:00', 'yyyy-mm-dd hh24:mi:ss') test_time
from dual
) t;
SQL> SELECT MYDATE,
2 DECODE(SIGN(MYDATE-TO_DATE(TO_CHAR(MYDATE,'YYYY-MM-DD')||'07:00:00','YYYY-MM-DD HH24:MI:SS'))
3 *SIGN(TO_DATE(TO_CHAR(MYDATE,'YYYY-MM-DD')||'19:00:00','YYYY-MM-DD HH24:MI:SS')-MYDATE),
4 1,'Morning Shift',
5 0,'Morning Shift',
6 'Afternoon Shift') CLASS_TYPE
7 FROM TABLE_NAME TT;
MYDATE CLASS_TYPE
-------------------------------------------------- ---------------
2008-12-3 6:30:55 Afternoon Shift
2008-12-3 10:42:33 Morning Shift
2008-12-3 19:22:36 Afternoon Shift
2008-12-3 19:00:00 Morning Shift
2008-12-4 7:00:00 Morning Shift
Tracy Xu
相关文章推荐
- Oracle:Decode在时间范围中的使用
- oracle 时间条件值范围越大就不走索引问题解决:使用强制索引
- oracle中Decode()函数使用说明
- 【转】Oracle中Decode()函数使用技巧
- Oracle中Decode()函数使用技巧
- oracle使用decode实现竖表转横表 (列转行)
- Oracle中Decode()函数使用技巧
- oracle常用三个函数TRIM、TRUNC、DECODE使用体会
- WinRT界面控件Essential Studio使用教程:如何实现选择时间范围
- 【转】Oracle中Decode()函数使用技巧
- Oracle Decode()函数使用技巧分享
- @maohoo Oracle 函数使用之Decode
- Oracle中Decode()函数使用技巧(借来看看)
- Oracle 行转列(pivot、wm_concat、decode)使用总结(转载)
- oracle中decode的使用和oracle中的行转列
- Oracle中Decode()函数使用技巧
- oracle中的decode的使用
- 问题:oracle decode;结果:oracle中的decode的使用
- oracle中的decode的使用介绍