zoukankan      html  css  js  c++  java
  • Oracle:Decode在时间范围中的使用.

    数据表里有一个字段叫test_Time,存储的内容为测试时间,yyyy-mm-dd HH24:Mi:SS
    我在做查询的时候需要下一个sql,需要select test_time出来,如果test_TimeHH24:Mi:SS70000190000返回白班,否则返回夜班,这个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

    魔兽就是毒瘤,大家千万不要玩。
  • 相关阅读:
    CodeForces 660D Number of Parallelograms
    【POJ 1082】 Calendar Game
    【POJ 2352】 Stars
    【POJ 2481】 Cows
    【POJ 1733】 Parity Game
    【NOI 2002】 银河英雄传说
    【NOI 2015】 程序自动分析
    【POJ 1704】 Georgia and Bob
    【HDU 2176】 取(m堆)石子游戏
    【SDOI 2016】 排列计数
  • 原文地址:https://www.cnblogs.com/tracy/p/1712747.html
Copyright © 2011-2022 走看看