oracle如何格式化日期,Oracle 日期格式化处理汇总[通俗易懂]

oracle如何格式化日期,Oracle 日期格式化处理汇总[通俗易懂]一、日期及时间格式化应用TO_CHAR(日期,格式化参数)1、返回任意有效分割符拼接的年月日字符串1.1、Selectto_char(sysdate,’yyyy/mm/dd’)Fromdual;*************************2015/04/29(即返回以’/’分隔符连接的字符串,也可以替换为’^’连接则结果为2015^04^29,也可以替换为’-‘则结果为2015-0…

大家好,又见面了,我是你们的朋友全栈君。

一、 日期及时间格式化应用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;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/137665.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(5)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号