oracle時間操作。

(所有的語句都是select ..加上下面的條件句子..from   dual)

 DAY_KEY             NUMBER(10) NOT NULL ,  -時間格式爲20141105

         to_number(to_char(sysdate,'YYYYMMDD'))

 CALENDAR_DAY         DATE NULL ,-時間格式爲2014/11/05

        to_date(to_char(sysdate,'YYYY/MM/DD'),'YYYY/MM/DD')

 HY_NUM              NUMBER(2) NULL ,       -1-6月爲1 7-12月爲2

        to_number(trunc(to_number(to_char(sysdate,'MM'))/7,0)+1)

QTR_NUM             NUMBER(2) NULL , --季度,1-3月爲14-6月爲2 7-9月爲310-12月爲4

        to_number(to_char(sysdate,'Q'))

WK_OF_YEAR          NUMBER(2) NULL , -2014/11/05所在周是這年的第幾周,值爲1-52

  to_number(to_char(sysdate,'ww'))

CAL_YEAR            NUMBER(4) NULL , -2014

       to_number(to_char(sysdate,'YYYY'))

DAY_NAME            VARCHAR2(30) NULL ,星期幾的簡寫

       to_char(sysdate,'DY')

DAY_OF_MON          NUMBER(2) NULL ,--2014/11/05是該月第幾天,1~28/29/30/31

      to_number(to_char(sysdate,'DD'))

 DAY_OF_WK           NUMBER(2) NULL ,-- 2014/11/05是該周第幾天,1~7

      to_number(to_char(sysdate,'D'))

DAY_OF_YEAR          NUMBER(3)NULL , --2014/11/05是該年第幾天,1~365

      to_number(to_char(sysdate,'DDD'))

MON_NAME            VARCHAR2(30) NULL , --2014/11/05所在月份的名稱,January ~ December

      to_char(sysdate,'MONTH')

HY_NAME             VARCHAR2(30) NULL , --2014/11/05所在半年的名稱,HY1HY2

      'HY'||( trunc(to_number(to_char(sysdate,'MM'))/7,0)+1)

YEAR_MON_NAME        VARCHAR2(30) NULL , --‘201411’

       to_char(sysdate,'YYYYMM')

 QTR_NAME            VARCHAR2(30) NULL , --2014/11/05所在季度的名稱,Q1Q2Q3Q4

      'Q'||to_char(sysdate,'Q')

 WK_NAME_OF_YEAR      VARCHAR2(30) NULL , --2014/11/05所在這年的周的名稱,WK1  ~ WK52

      'WK'||to_char(sysdate,'ww')

 NAME_OF_YEAR         VARCHAR2(30) NULL, --2014/11/05所在年的名稱,‘2014’

       to_char(sysdate,'YYYY')

 IS_FIRST_DAY_OF_WK   VARCHAR2(1) NULL ,--2014/11/05是否爲所在周的第一天,若是則爲1,否則爲0

       case when to_char(sysdate,'D')='1' then '1' else '0' end

 IS_LAST_DAY_OF_WK    VARCHAR2(1) NULL ,--2014/11/05是否爲所在周的最後一天,若是則爲1,否則爲0

        case when to_char(sysdate,'D')='7' then '1' else '0' end

 IS_FIRST_DAY_OF_MON  VARCHAR2(1) NULL ,--2014/11/05是否爲所在月的第一天,若是則爲1,否則爲0

        Case  when  to_char(trunc(sysdate,'MONTH'),'YYYY/MM/DD')=to_char(sysdate,' YYYY/MM/DD') then'1' else '0'  end     

IS_LAST_DAY_OF_MON  VARCHAR2(1) NULL , --2014/11/05是否爲所在月的最後一天,若是則爲1,否則爲0

         case when to_char(last_day(sysdate),'YYYY/MM/DD')=to_char(sysdate,'YYYY/MM/DD ')then'1'  else '0' end

IS_FIRST_DAY_OF_QTR  VARCHAR2(1) NULL ,--2014/11/05是否爲所在季度的第一天,若是則爲1,否則爲0

          case  when to_char(trunc(sysdate,'Q'),'YYYY/MM/DD')=to_char(sysdate,'YYYY/MM/DD')then'1' else '0'  end

IS_LAST_DAY_OF_QTR   VARCHAR2(1) NULL ,--2014/11/05是否爲所在季度的最後一天,若是則爲1,否則爲0

          case  when to_char(add_months(trunc(sysdate,'Q'),3)-1,'YYYY/MM/DD')=to_char(sysdate,'YYYY/MM/DD')then'1' else '0'  end

IS_FIRST_DAY_OF_YEAR VARCHAR2(1) NULL , --2014/11/05是否爲所在年的第一天,若是則爲1,否則爲0

           case  when to_char(trunc(sysdate,'YEAR'),'YYYY/MM/DD')=to_char(sysdate,'YYYY/MM/DD')then'1'  else '0' end

IS_LAST_DAY_OF_YEAR  VARCHAR2(1) NULL ,--2014/11/05是否爲所在年的最後一天,若是則爲1,否則爲0

            case  when to_char(add_months(trunc(sysdate,'YEAR'),12)-1,'YYYY/MM/DD')=to_char(sysdate,'YYYY/MM/DD')then'1' else '0'  end

CREATE_DT           DATE NULL , --系統時間

             sysdate

WK_OF_MON           NUMBER(2) NULL , --2014/11/05所在月份第幾周,每月從第一天開始重新計數,如每月的第一天爲第一週,以此類推

            to_number(to_char(sysdate,'iw'))-to_number(to_char(trunc(sysdate,'MM'),'iw'))+1

 MON_NUM             NUMBER(2) NULL , --2014/11/05所在月份, 1 ~ 12

            to_number(to_char(sysdate,'MM'))

MON_ABBR            VARCHAR2(30) NULL , --2014/11/05所在月份簡稱,Jan Feb….Dec.

           to_char(sysdate,'MON')

CAL_DAY_DT          NUMBER(8) NULL , --2014/11/05的數字表示,20141105

           to_number(to_char(sysdate,'YYYYMMDD'))

TTL_MON_DAYS         NUMBER(2) NULL , --2014/11/05所在月份總共有多少天,28,29,30,31

          to_number(to_char(add_months(trunc(sysdate,'MONTH'),1)-1,'DD'))

TTL_YEAR_DAYS        NUMBER(3) NULL , --2014/11/05所在年總共有多少天,365366

          to_number(to_char(add_months(trunc(sysdate,'YEAR'),12)-1,'DDD'))

 IS_WK_END           NUMBER(1) NULL , --2014/11/05是否爲週末,如果是星期六,日,則爲1,否則爲0

          case when to_char(sysdate,'DY')='SAT' or to_char(sysdate,'DY')='SUN'  then 1 else 0 end

 IS_WORKING_DAY       NUMBER(1) NULL , --2014/11/05是否爲工作日,如果是星期六,日,則爲0,否則爲1

         case when to_char(sysdate,'DY')='SAT' or to_char(sysdate,'DY')='SUN'  then 0 else 1 end

CAL_YEAR_MON         NUMBER(6) NULL , --2014/11/05所在月份的數字表示,201411

          to_number(to_char(sysdate,'YYYYMM'))

MON_START_DT         DATE NULL , --2014/11/05所在月份的第一天,2014/11/01

         trunc(sysdate,'MONTH')

MON_END_DT           DATENULL , --2014/11/05所在月份的最後一天,2014/11/30

         last_day(to_date(to_char(sysdate,'YYYY/MM/DD'),'YYYY/MM/DD'))

QTR_START_DT         DATE NULL , --2014/11/05所在季度的第一天,2014/10/01

         trunc(sysdate,'Q')

QTR_END_DT           DATENULL , --2014/11/05所在季度的最後一天,2014/10/31

         add_months(trunc(sysdate,'Q'),3)-1

YEAR_START_DT        DATE NULL , --2014/11/05所在年的第一天,2014/1/01

         trunc(sysdate,'YEAR')

YEAR_END_DT          DATE NULL , --2014/11/05所在年的最後一天,2014/12/31

         add_months(trunc(sysdate,'YEAR'),12)-1

 WK_START_DT          DATE NULL , --2014/11/05所在周的第一天,2014/11/03

         trunc(sysdate,'DY')

WK_END_DT           DATE NULL  --2014/11/05所在周的最後一天,2014/11/09

         trunc(sysdate,'DY')+6

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章