分类: Linux
Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0
Connected as att
SQL> select to_char(sysdate,'yyyy-mm-dd') from dual;
TO_CHAR(SYSDATE,'YYYY-MM-DD')
-----------------------------
-07-29
SQL> select to_char(sysdate+5,'yyyy-mm-dd') from dual;
TO_CHAR(SYSDATE+5,'YYYY-MM-DD'
------------------------------
-08-03
SQL> select to_char(sysdate+5,'yyyy-mm-fmdd') from dual;
TO_CHAR(SYSDATE+5,'YYYY-MM-FMD
------------------------------
-08-3
SQL> select to_char(sysdate+5,'yyyy-fmmm-dd') from dual;
TO_CHAR(SYSDATE+5,'YYYY-FMMM-D
------------------------------
-8-3
SQL> select to_char(sysdate,'yyyy-mm-fmdd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YYYY-MM-FMDDH
------------------------------
-07-29 14:32:7
SQL> select to_char(sysdate-10/24,'yyyy-mm-fmdd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE-10/24,'YYYY-MM
------------------------------
-07-29 4:32:29
通过以上尝试可以推测,在如果在年级别指定fm,则月、日、时、分、秒都会被取出前导的0.
SQL> select to_char(sysdate-365*5,'fmyy-mm-dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE-365*5,'FMYY-MM
------------------------------
8-7-30 14:34:7
SQL> select to_char(sysdate-365*5,'yy-mm-dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE-365*5,'YY-MM-D
------------------------------
08-07-30 14:34:19
==========================================================================================
以前碰到过对于199x年的日期,由于提供的是两位格式的日期,而当成209x年处理的问题。(见日志“日期格式的转换.TXT”)
今天发现一个RR的年份格式。其说明如下:
如果当前日期的年份后两位数字是0~49之间,指定的日期年份后两位数字是0~49,返回当前的世纪;
如果当前日期的年份后两位数字是0~49之间,指定的日期年份后两位数字是50~99,返回当前的世纪之前的世纪;
如果当前日期的年份后两位数字是50~99之间,指定的日期年份后两位数字是0~49,返回当前的世纪之后的世纪;
如果当前日期的年份后两位数字是50~99之间,指定的日期年份后两位数字是50~99,返回当前的世纪;
与yy格式年份的不同可以通过下表得到:
Current Year| Specified Date | RR Format | YY Format
1995 | 27-OCT-95 | 1995 | 1995
1995 | 27-OCT-17 | | 1917
2001 | 27-OCT-17 | |
2001 | 27-OCT-95 | 1995 | 2095
如果觉得《日期格式中去掉前导0 RR格式的年份.TXT》对你有帮助,请点赞、收藏,并留下你的观点哦!