oracle如何格式化日期,Oracle 日期格式化处理汇总

一、 日期及时间格式化应用TO_CHAR(日期,格式化参数)

1、返回任意有效分割符拼接的年月日字符串

1.1、Select to_char(sysdate,'yyyy/mm/dd') From dual;

*************************

2015/04/29 (即返回以'/'分隔符连接的字符串,也可以替换为'^'连接则结果为2015^04^29,也可以替换为'-'则结果为2015-04-29)

1.2、Select to_char(sysdate,'yyyy/mm/dd hh:mm:ss') From dual;

****************************

2015/04/29 03:04:40

1.3、 Select to_char(sysdate,'AD yyyy-mm-dd hh:mm:ss') From dual;

*****************************

公元 2015-04-29 03:04:33

1.4、 Select to_char(sysdate,'BC yyyy-mm-dd hh:mm:ss') From dual;

*****************************

公元 2015-04-29 03:05:53

1.5、Select to_char(sysdate,'YYYY-MM-DD PM hh24:mi:ss') From dual;/**hh12:十二小时制**/

****************************

2015-04-29 下午 15:12:21

二、获取日期字符串的对应的数据

2.1、日期换算为对应的世纪 cc/scc(S前缀指定如遇公元前的显示,会在显示前加(-) 提示:

* 如果年份中最后两位数字在01到99(含)之间,则返回值等于年份前两位+1

* 如果年份中最后两位数字是00,则返回值与年份前两位相同)

Select to_char(to_date('2001-8-3','YYYY-MM-DD'),'cc') || '世纪' From dual;

*********

21世纪

2.2、指定日期在周中的数值 D(范围:1-7)

Select '星期' || (case to_char(to_date('2015-04-05','YYYY-MM-DD'),'D') when '1' then '日'

else to_char(to_char(to_date('2015-04-05','YYYY-MM-DD'),'D')-1) end)

From dual;/*是按阳历的星期日,这里返回的是1,则相应地星期三则返回的是4,所以做了下处理*/

**************************

星期日

2.3、指定日期在对应月份的天数DD(1-31),DDD当前年的天数,DAY 当前周的天数(直接返回星期X)

Select to_char(to_date('2015-04-01','yyyy-mm-dd'),'DD') from dual;

************

01

2.4、指定日期的月份简写,

Select to_char(sysdate,'MON') From dual;

*************

4月

2.5、YEAR/SYEAR 返回字符型年,此处s前缀与SCC处相同

Select to_char(sysdate,'year') From dual;

**************

twenty fifteen

2.6、YYYY返回指定日期的数字年份、MM返回指定日期的月份(01-12)、 am hh12/am hh24、Mi返回指定日期的分(00-59)、SS返回指定日期的秒(00-59)、SS返回指定日期的秒(00-59)、Y,YYY 返回有逗号分隔显示的年2,015、

Y/YY/YYY 以指定长度返回日期的年份

2.7、Q 返回指定日期的季度(范围:1-4)、返回指定日期在当月中的第X周(范围:1-5)、WW 返回指定日期在当年中的第X周(范围:1-53)、J 自公元前 4712 年1月1日到指定日期的总天数、SSSSS 返回自午夜到指定时间共逝去的秒数(范围:0-86399)

Select '第'||to_char(to_date('2015-04-09','yyyy-mm-dd'),'w')||'周' from dual;

*********************

第2周

2.8、DL 根据数据中参数中的格式返回长日期形式、DS 与上相同返回短日期形式(2015-04-29)、TS返回的是时间(下午 3:55:31)、DY返回的是星期几(星期三)

Select to_char(sysdate,'DL') from dual;

***************

2015年4月29日 星期三

三、简单应用

3.1、获取指定日期在同一周,周一的日期(+2 就是获取周一,+3就是周二,以此类推最大加8 就是当前周星期日,若加9就是下一周的星期一)

Select to_date('2015-04-02', 'yyyy-mm-dd')- to_char(to_date('2015-04-02', 'yyyy-mm-dd'), 'd') + 2

From dual;

****************

2015-03-30

3.2、 返回当年的第XXX天对应的日期

Select to_date('10','ddd') from dual;

*************

2015-01-10

3.3当前时间减去7分钟的时间

select sysdate,sysdate - interval '7' MINUTE from dual;

当前时间减去7小时的时间

select sysdate - interval '7' hour from dual;

当前时间减去7天的时间

select sysdate - interval '7' day from dual;

当前时间减去7月的时间

select sysdate,sysdate - interval '7' month from dual;

当前时间减去7年的时间

select sysdate,sysdate - interval '7' year from dual;

时间间隔乘以一个数字

select sysdate,sysdate - 8*interval '7' hour from dual;

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值