大家好,又见面了,我是你们的朋友全栈君。
一、 日期及时间格式化应用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账号...