oracle时间操作。

来源:互联网 发布:java public和private 编辑:程序博客网 时间:2024/06/03 19:56

(所有的语句都是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

0 0