oracle 数据库 日期

来源:互联网 发布:ubuntu eric pyqt5 编辑:程序博客网 时间:2024/06/03 18:32

出处:http://www.cnblogs.com/ajian/archive/2009/03/25/1421063.html    


年份:      

        YY两位数两位年显示值:07
        YYY三位三位年显示值:007
        YYYY四位四位年显示值:2007         月:               毫米数两位月显示值:11         周一略字符集表示显示值:11月,若是英文版,显示月              一个月拼写字符集表示显示值:11月,若是英文版,显示月          日:               DD号当月第几天显示值:02         DDD数当年第几天显示值:02         DY缩写当周第几天简写显示值:星期五,若是英文版,显示周五        当天阐述了当周第几天全写显示值:星期五,若是英文版,显示周五                 ddspth拼写,依次十二                小时:              HH型双数字12小时进制显示值:01               HH24两位数24小时进制显示值:13               分钟:              MI两位60进制显示值:45               二:              SS两位60进制显示值:25               其它              Q位数季度显示值:4               位数WW当年第几周显示值:44               W¯¯数字当月第几周显示值:1         24小时格式下时间范围为:0:00:00 - 23:59:59 ....               12小时格式下时间范围为:1:00:00 - 12:59:59 ....  1。日期和字符转换函数用法(TO_DATE,TO_CHAR)选择TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS')作为nowTime从双; //日期转化为字符串    选择TO_CHAR(SYSDATE,'YYYY')作为nowYear从双; //获取时间的年    选择TO_CHAR(SYSDATE,“毫米”)作为nowMonth从双; //获取时间的月    选择TO_CHAR(SYSDATE,“DD”)作为nowDay从双; //获取时间的日    选择TO_CHAR(SYSDATE,'HH24')作为nowHour从双; //获取时间的时    选择TO_CHAR(SYSDATE,'MI')作为nowMinute从双; //获取时间的分    选TO_CHAR(SYSDATE,'SS')作为nowSecond从双; //获取时间的秒
  

选择从TO_DATE双//('2004-05-07十三点23分44秒“,”YYYY-MM-DD HH24:SS:宓)

2.      
    选择TO_CHAR(TO_DATE(222,'J'),'.JSP')从双           显示两一百二十二    

3.求某天是星期几      
   选择​​TO_CHAR(TO_DATE('2002-08-26','YYYY-MM-DD“),”日“)从双;      
   星期一      
   选择TO_CHAR(TO_DATE('2002-08-26 ','YYYY-MM-DD'),' ​​天','NLS_DATE_LANGUAGE =美国“)从双;      
   星期一      
   设置日期语言      
   ALTER SESSION SET NLS_DATE_LANGUAGE ='美国';      
   也可以这样      
   TO_DATE('2002-08-26', 'YYYY-MM-DD','NLS_DATE_LANGUAGE =美国“)    

4.两个日期间的天数      
    选择地板(SYSDATE - TO_DATE('20020405','YYYYMMDD'))从双;    

5.时间为空的用法      
   中选择ID,从表1 active_date      
   UNION      
   选择1,TO_DATE(空)从双;          注意要用TO_DATE(空)    
   

6月份差   
   TO_DATE之间a_date('20011201','YYYYMMDD')和      日期格式冲突问题           输入的格式要看你安装的ORACLE字符集的类型,比如:US7ASCII,日期格式的类型就是:'01 -JAN-01“           改变系统设置NLS_DATE_LANGUAGE =美国           改变会话设置NLS_DATE_LANGUAGE =美国           或者在TO_DATE中写           选择TO_CHAR(TO_DATE('2002-08-26','YYYY-MM-DD'),' ​​天','NLS_DATE_LANGUAGE =美国“)从双;           注意我这只是举了NLS_DATE_LANGUAGE,当然还有很多,           可查看           SELECT * FROM nls_session_parameters           SELECT * FROM V $ NLS_PARAMETERS    

8.       

   SELECT COUNT(*)      
   从(选择ROWNUM-1 RNUM      
       从ALL_OBJECTS      
       ,其中ROWNUM <= TO_DATE('2002-02-28','YYYY-MM-DD') - TO_DATE(“2002-      
       02-01“,” YYYY-MM-DD')+ 1      
      )      
   ,其中TO_CHAR(TO_DATE('2002-02-01','YYYY-MM-DD')+ RNUM-1,“D”)      
        没有('1','7'         让后将结果相减(得到的是1/100秒,而不是毫秒)。    
   

9.查找月份     
    选择MONTHS_BETWEEN(TO_DATE('01 -31-1999','MM-DD-YYYY“),TO_DATE('12 -31-1998','MM-DD-YYYY'))”二个月“FROM DUAL ;      
    1      
   选择MONTHS_BETWEEN(TO_DATE('02 -01-1999','MM-DD-YYYY“),TO_DATE('12 -31-1998','MM-DD-YYYY'))”二个月“FROM DUAL;      
    1.03225806451613  10。NEXT_DAY的用法           NEXT_DAY(日期,星期)           周一至周日,对于格式的代码DAY           周一至周日,对于格式的代码DY           1-7,对于格式码D    
       
11       

   选择TO_CHAR(SYSDATE,'HH:MI:SS“)从ALL_OBJECTS时间      
   注意:第一条记录的时间与最后一行是一样的      
   可以建立一个函数来处理这个问题      
   创建或替换功能sys_date归期是      
   开始      
   回报SYSDATE ;      
   ;年底          从ALL_OBJECTS;选择TO_CHAR(sys_date,'SS:MI HH')    12获得小时数            提取物()找出日期或间隔值的字段值    选择提取(小时,从TIMESTAMP'2001-02-16 2: 38:40')的报价           SQL>选择SYSDATE,TO_CHAR(SYSDATE,“HH”从双);           SYSDATE TO_CHAR(SYSDATE,“HH”)           ------------------ - ---------------------           2003-10-13 19点35分21秒07           SQL>选择SYSDATE,从双TO_CHAR(SYSDATE,'HH24');           SYSDATE TO_CHAR(SYSDATE,'HH24')           -------------------- --------------------- -           2003-10-13 19时35分21秒19    
   

13.年月日的处理      
   选择older_date,      
       newer_date,      
       年,      
       月,      
       ABS(      
        TRUNC(      
         newer_date-      
         ADD_MONTHS(older_date,年* 12 +个月)      
        )      
       )日     从(选择               TRUNC(MONTHS_BETWEEN(newer_date,older_date)/ 12岁) ,               MOD(TRUNC(MONTHS_BETWEEN(newer_date,older_date)),12)个月,               newer_date,               older_date               从(                选择HIREDATE older_date,ADD_MONTHS(HIREDATE,ROWNUM)+ ROWNUM newer_date                     从EMP               )             )    
     
14.处理月份天数不定的办法       

   从双选择TO_CHAR(ADD_MONTHS(LAST_DAY(SYSDATE)+1,-2),“年月日”),LAST_DAY(SYSDATE)    

16.找出今年的天数      
   选择ADD_MONTHS(TRUNC(SYSDATE,'年'),12) - TRUNC(SYSDATE,'年')从双    

   闰年的处理方法      
   TO_CHAR(LAST_DAY(TO_DATE('02'| |:今年,“mmyyyy')),”DD“)      
   如果是28就不是闰年    

17.yyyy与RRRR的区别      
   “YYYY99 TO_C      
   ------- ----      
   YYYY 99 0099      
   RRRR 99 1999年      
   01 YYYY 0001      
   RRRR 2001年01    

18.不同时区的处理      
   选择TO_CHAR(NEW_TIME(SYSDATE,“GMT”,“EST”),“DD / MM / YYYY HH:MI:SS”),SYSDATE      
   从双;    

19.5秒钟一个间隔      
   选择TO_DATE((TO_CHAR(SYSDATE,'SSSSS')/ 300)* 300,“SSSSS”楼),TO_CHAR(SYSDATE,'SSSSS“)      
   从双    

   2002年11月1日9点55分00秒35786      
   SSSSS表示5位秒数    

20.一年的第几天      
   选择TO_CHAR(SYSDATE,“DDD”),从双SYSDATE    310 2002年11月6日10时03分51秒    
        

21.计算小时,分,秒,毫秒      
    选择      
     天,      
     A,      
     TRUNC(A * 24)小时,      
     TRUNC(A * 24 * 60 - 60 * TRUNC(A * 24))分,      
     TRUNC(A * 24 * 60 * 60 - 60 * TRUNC(A * 24 * 60))秒,      
     TRUNC(A * 24 * 60 * 60 * 100 - 100 * TRUNC(A * 24 * 60 * 60))mSeconds      
    从      
    (      
     选择      
     TRUNC(SYSDATE)天,      
     SYSDATE - TRUNC(SYSDATE)一个      
     从双      
   )    

   SELECT * FROM TABNAME      
   为了通过解码(模式,'先进先出',1,-1)* TO_CHAR(RQ,'YYYYMMDDHH24MISS');          //          楼((DATE2-DATE1)/ 365)作为年          地板((date2的-DATE1, 365)/ 30)作为月          D(MOD(date2的-DATE1,365),30)作为日。
   

23.next_day函数    2 3 4 5 6 7          日一二三四五六        ------------------------------------- --------------------------     选择(SYSDATE-TO_DATE('2003-12-03 12点55分45秒“,”YYYY-MM- DD HH24:MI:SS'))* 24 * 60 * 60,从ddual    日期返回的是天然后转换为SS 24轮[舍入到最接近的日期(日:舍入到最接近的星期日)   选择SYSDATE S1,   圆(SYSDATE)S2,   圆(SYSDATE,'年')YEAR,   圆(SYSDATE,'月')个月的,   圆(SYSDATE,'天')的双日

25,TRUNC [截断到最接近的日期,单位为天],返回的是日期类型
   选择SYSDATE S1,                     
     TRUNC(SYSDATE)S2,//返回当前日期,无时分秒
     TRUNC(SYSDATE,'年')年, //返回当前年的1月1日,无时分秒
     TRUNC(SYSDATE,'月')个月的,//返回当前月的1日,无时分秒
     TRUNC(SYSDATE,'天')天//返回当前星期的星期天,无时分秒
   从双

26,返回日期列表中最晚日期
   从双-选择最大(1月-04','04- 1月-04','10- 2月-04''01)

27.计算时间差
     注:甲骨文时间差是以天数为单位,所以换算成年月,日      选择地板(TO_NUMBER(SYSDATE-TO_DATE('2007-11-02 15点55分03秒“,”YYYY-MM-DD HH24: MI:SS'))/ 365)从双//时间差spanYears -年      选择CEIL(moths_between(SYSDATE-TO_DATE('2007-11-02 15点55分03秒“,”YYYY-MM-DD HH24:MI: SS')))从双//时间差spanMonths -月      选择地板(TO_NUMBER(SYSDATE-TO_DATE('2007-11-02 15点55分03秒“,”YYYY-MM-DD HH24:MI:SS')) )从双//时间差spanDays -天      选层(TO_NUMBER(SYSDATE-TO_DATE('2007-11-02 15点55分03秒“,”YYYY-MM-DD HH24:MI:SS'))* 24)从双//时间差spanHours -时      选择地板(TO_NUMBER(SYSDATE-TO_DATE('2007-11-02 15点55分03秒“,”YYYY-MM-DD HH24:MI:SS'))* 24 * 60)为从双//时间差spanMinutes -分      选层(TO_NUMBER(SYSDATE-TO_DATE('2007-11-02 15点55分03秒“,”YYYY-MM-DD HH24:MI:SS'))* 24 * 60 * 60 )从双spanSeconds //时间差-秒
     

28.更新时间
     注:oracle时间加减是以天数为单位,设改变量为n,所以换算成年月,日
     select TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS')TO_CHAR(SYSDATE + N * 365,'YYYY-MM-DD HH24:MI:SS')作为NEWTIME从双//改变时间-年
     选择TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS“),ADD_MONTHS(SYSDATE,N)为从NEWTIME双//改变时间-月
     选择TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS '),TO_CHAR(SYSDATE + N,'YYYY-MM-DD HH24:MI:SS')作为NEWTIME从双//改变时间-日
     选择TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS“) ,TO_CHAR(SYSDATE + N / 24,'YYYY-MM-DD HH24:MI:SS')作为NEWTIME从双//改变时间-时
     选择TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS“) ,TO_CHAR(SYSDATE + N / 24/60'YYYY-MM-DD HH24:MI:SS')作为NEWTIME从双//改变时间-分
     选TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS '),TO_CHAR(SYSDATE + N / 24/60/60'YYYY-MM-DD HH24:MI:SS')作为NEWTIME从双//改变时间-秒

29.查找月的第一天,最后一天
     SELECT TRUNC(TRUNC(SYSDATE,“月”) - 1,“月”)First_Day_Last_Month,
       TRUNC(SYSDATE,'月') -八万六千四百分之一Last_Day_Last_Month,
       TRUNC(SYSDATE,'月“)First_Day_Cur_Month,
       LAST_DAY(TRUNC(SYSDATE,“月”))+ 1 -八万六千四百分之一Last_Day_Cur_Month
   FROM DUAL;

0 0
原创粉丝点击