oracle 日期格式小结

来源:互联网 发布:mac显示应用程序桌面 编辑:程序博客网 时间:2024/05/17 21:54
1、主要用到的函数、表

(1)to_date("要转换的字符串","转换的格式") :两个参数的格式必须匹配,否则会报错。即按照第二个参数的格式解释第一个参数。

(2)to_char(日期,"转换格式" ) 即把给定的日期按照“转换格式”转换。

(3)Dual 是 Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的select语句块中。 

2、函数的基本用法

--日期转化为字符串 select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') as nowTime from dual;--获取时间的年     select to_char(sysdate, 'yyyy') as nowYear from dual;--获取时间的月select to_char(sysdate, 'mm') as nowMonth from dual;--获取时间的日    select to_char(sysdate, 'dd') as nowDay from dual;--获取时间的时     select to_char(sysdate, 'hh24') as nowHour from dual;--获取时间的分   select to_char(sysdate, 'mi') as nowMinute from dual;--获取时间的秒select to_char(sysdate, 'ss') as nowSecond from dual;--2004-5-7 13:23:44select to_date('2016-05-29 13:23:44', 'yyyy-mm-dd hh24:mi:ss') from dual;

3、求两个日期的比较      
   --floor函数:去掉小数的取整 0   select floor(sysdate - to_date('20160529','yyyymmdd')) from dual;          -- 0.859537037037037   select sysdate - to_date('20160529','yyyymmdd') from dual;

4一年的第几天     
--150  2016-5-29 20:42:17select TO_CHAR(SYSDATE,'DDD'),sysdate from dual
5、round[舍入到最接近的日期](day:舍入到最接近的星期日)

   select sysdate S1,   round(sysdate) S2 ,   round(sysdate,'year') YEAR,   round(sysdate,'month') MONTH ,   round(sysdate,'day') DAY from dual

6、trunc[截断到最接近的日期,单位为天 ,返回的是日期类型
   select sysdate S1,                          trunc(sysdate) S2,                      trunc(sysdate,'year') YEAR,            trunc(sysdate,'month') MONTH ,        trunc(sysdate,'day') DAY             from dual

7、返回日期列表中最晚日期

select greatest('14-1月-04','16-1月-04','15-2月-04') from dual

8、查找月的第一天,最后一天
     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;

0 0
原创粉丝点击