Oracle 总结 常用日期格式转换

您所在的位置:网站首页 oracle日期转换星期 Oracle 总结 常用日期格式转换

Oracle 总结 常用日期格式转换

2023-09-21 13:50| 来源: 网络整理| 查看: 265

转载链接:oracle常用的时间格式转换(一)

全文直接转载,可以点击链接直接查看,后续有时间会对本文格式进行调整方便自己查阅。

1:取得当前日期是本月的第几周 SQL> select to_char(sysdate,‘YYYYMMDD W HH24:MI:SS’) from dual;

20030327 4 18:16:09 SQL> select to_char(sysdate,‘W’) from dual; T

4

2:取得当前日期是一个星期中的第几天,注意星期日是第一天 SQL> select sysdate,to_char(sysdate,‘D’) from dual; SYSDATE T

27-MAR-03 5    类似:

select to_char(sysdate,‘yyyy’) from dual; --年 select to_char(sysdate,‘Q’ from dual; --季 select to_char(sysdate,‘mm’) from dual; --月 select to_char(sysdate,‘dd’) from dual; --日 ddd 年中的第几天 WW 年中的第几个星期 W 该月中第几个星期 D 周中的星期几 hh 小时(12) hh24 小时(24) Mi 分 ss 秒

3:取当前日期是星期几中文显示: SQL> select to_char(sysdate,‘day’) from dual; TO_CHAR(SYSDATE,‘DAY’)

星期四

4:如果一个表在一个date类型的字段上面建立了索引,如何使用 alter session set NLS_DATE_FORMAT=‘YYYY-MM-DD HH24:MI:SS’

5: 得到当前的日期 select sysdate from dual;

6: 得到当天凌晨0点0分0秒的日期 select trunc(sysdate) from dual; – 得到这天的最后一秒 select trunc(sysdate) + 0.99999 from dual; – 得到小时的具体数值 select trunc(sysdate) + 1/24 from dual; select trunc(sysdate) + 7/24 from dual;

7.得到明天凌晨0点0分0秒的日期 select trunc(sysdate+1) from dual; select trunc(sysdate)+1 from dual;

8: 本月一日的日期 select trunc(sysdate,‘mm’) from dual;

9:得到下月一日的日期 select trunc(add_months(sysdate,1),‘mm’) from dual;

10:返回当前月的最后一天? select last_day(sysdate) from dual; select last_day(trunc(sysdate)) from dual; select trunc(last_day(sysdate)) from dual; select trunc(add_months(sysdate,1),‘mm’) - 1 from dual;

11: 得到一年的每一天 select trunc(sysdate,‘yyyy’)+ rn -1 date0 from (select rownum rn from all_objects where rownum select sysdate ,to_char(sysdate,'hh24') from dual; SYSDATE TO_CHAR(SYSDATE,'HH24') -------------------- ----------------------- 2003-10-13 19:35:21 19

13.年月日的处理 select older_date, newer_date, years, months, abs( trunc( newer_date- add_months( older_date,years*12+months ) ) ) days

from ( select trunc(months_between( newer_date, older_date )/12) YEARS, mod(trunc(months_between( newer_date, older_date )),12 ) MONTHS, newer_date, older_date from ( select hiredate older_date, add_months(hiredate,rownum)+rownum newer_date from emp ) )

14.处理月份天数不定的办法 select to_char(add_months(last_day(sysdate) +1, -2), ‘yyyymmdd’),last_day(sysdate) from dual

16.找出今年的天数 select add_months(trunc(sysdate,‘year’), 12) - trunc(sysdate,‘year’) from dual

闰年的处理方法 to_char( last_day( to_date(‘02’ | | :year,‘mmyyyy’) ), ‘dd’ ) 如果是28就不是闰年

17.yyyy与rrrr的区别 'YYYY99 TO_C

yyyy 99 0099 rrrr 99 1999 yyyy 01 0001 rrrr 01 2001

18.不同时区的处理 select to_char( NEW_TIME( sysdate, ‘GMT’,‘EST’), ‘dd/mm/yyyy hh:mi:ss’) ,sysdate from dual;

19.5秒钟一个间隔 Select TO_DATE(FLOOR(TO_CHAR(sysdate,‘SSSSS’)/300) * 300,‘SSSSS’) ,TO_CHAR(sysdate,‘SSSSS’) from dual

2002-11-1 9:55:00 35786 SSSSS表示5位秒数

20.一年的第几天 select TO_CHAR(SYSDATE,‘DDD’),sysdate from dual

310 2002-11-6 10:03:51

21.计算小时,分,秒,毫秒 select Days, A, TRUNC(A24) Hours, TRUNC(A2460 - 60TRUNC(A24)) Minutes, TRUNC(A246060 - 60TRUNC(A2460)) Seconds, TRUNC(A246060100 - 100TRUNC(A2460*60)) mSeconds from ( select trunc(sysdate) Days, sysdate - trunc(sysdate) A from dual )

select * from tabname order by decode(mode,‘FIFO’,1,-1)*to_char(rq,‘yyyymmddhh24miss’);

// floor((date2-date1) /365) 作为年 floor((date2-date1, 365) /30) 作为月 d(mod(date2-date1, 365), 30)作为日.

23.next_day函数 返回下个星期的日期,day为1-7或星期日-星期六,1表示星期日 next_day(sysdate,6)是从当前开始下一个星期五。后面的数字是从星期日开始算起。 1 2 3 4 5 6 7 日 一 二 三 四 五 六

select (sysdate-to_date(‘2003-12-03 12:55:45’,‘yyyy-mm-dd hh24:mi:ss’))2460*60 from ddual 日期 返回的是天 然后 转换为ss

24,round舍入到最接近的日期 select sysdate S1, round(sysdate) S2 , round(sysdate,‘year’) YEAR, round(sysdate,‘month’) MONTH , round(sysdate,‘day’) DAY from dual

25,trunc[截断到最接近的日期,单位为天] ,返回的是日期类型 select sysdate S1, trunc(sysdate) S2, //返回当前日期,无时分秒 trunc(sysdate,‘year’) YEAR, //返回当前年的1月1日,无时分秒 trunc(sysdate,‘month’) MONTH , //返回当前月的1日,无时分秒 trunc(sysdate,‘day’) DAY //返回当前星期的星期天,无时分秒 from dual

26,返回日期列表中最晚日期 select greatest(‘01-1月-04’,‘04-1月-04’,‘10-2月-04’) from dual

27.计算时间差 注:oracle时间差是以天数为单位,所以换算成年月,日

select floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))/365) as spanYears from dual //时间差-年 select ceil(moths_between(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))) as spanMonths from dual //时间差-月 select floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))) as spanDays from dual //时间差-天 select floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))*24) as spanHours from dual //时间差-时 select floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))*24*60) as spanMinutes from dual //时间差-分 select floor(to_number(sysdate-to_date('2007-11-02 15:55:03','yyyy-mm-dd hh24:mi:ss'))*24*60*60) as spanSeconds from dual //时间差-秒

28.更新时间 注:oracle时间加减是以天数为单位,设改变量为n,所以换算成年月,日 select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss’),to_char(sysdate+n*365,‘yyyy-mm-dd hh24:mi:ss’) as newTime from dual //改变时间-年 select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss’),add_months(sysdate,n) as newTime from dual //改变时间-月 select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss’),to_char(sysdate+n,‘yyyy-mm-dd hh24:mi:ss’) as newTime from dual //改变时间-日 select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss’),to_char(sysdate+n/24,‘yyyy-mm-dd hh24:mi:ss’) as newTime from dual //改变时间-时 select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss’),to_char(sysdate+n/24/60,‘yyyy-mm-dd hh24:mi:ss’) as newTime from dual //改变时间-分 select to_char(sysdate,‘yyyy-mm-dd hh24:mi:ss’),to_char(sysdate+n/24/60/60,‘yyyy-mm-dd hh24:mi:ss’) as newTime from dual //改变时间-秒

29.查找月的第一天,最后一天 SELECT Trunc(Trunc(SYSDATE, ‘MONTH’) - 1, ‘MONTH’) First_Day_Last_Month, Trunc(SYSDATE, ‘MONTH’) - 1 / 86400 Last_Day_Last_Month, Trunc(SYSDATE, ‘MONTH’) First_Day_Cur_Month, LAST_DAY(Trunc(SYSDATE, ‘MONTH’)) + 1 - 1 / 86400 Last_Day_Cur_Month FROM dual;



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3