oracle格式化列宽度,ORACLE日期时间的格式化参数大全

经常遇到有朋友问询关于日期时间格式化的问题(或可以通过格式化轻易解决),经过参考Oracle SQL Reference官方文档,并附上详细的应用示例综合成文,希望能够对大家学习和使用有所帮助。本篇可视为"oracle著名及非著名函数介绍"的补充!

环境:

SQL> select *from v$version;

BANNER

----------------------------------------------------------------

Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Prod

PL/SQL Release 10.2.0.3.0 - Production

CORE 10.2.0.3.0 Production

TNS for 32-bit Windows: Version 10.2.0.3.0 - Production

NLSRTL Version 10.2.0.3.0 - Production

SQL> SELECT SESSIONTIMEZONE FROM DUAL;

SESSIONTIMEZONE

---------------------------------------------------------------------------

+08:00

SQL> show parameter nls;

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

nls_date_format string yyyy-mm-dd hh24:mi:ss

nls_language string SIMPLIFIED CHINESE

一、 日期及时间一

格式串 说明及示例

---------- -----------------------------------------------------------

-/,.;: 指定返回字串分隔符

例如:

SQL> select to_char(sysdate,¨yyyy/mm/dd¨) from dual;

TO_CHAR(SYSDATE,¨YYYY/MM/DD¨)

-----------------------------

2007/12/14

SQL> select to_char(sysdate,¨yyyy-mm-dd¨) from dual;

TO_CHAR(SYSDATE,¨YYYY-MM-DD¨)

-----------------------------

2007-12-14

AD/A.D. 公元标识

例如:

SQL> select to_char(sysdate,¨AD YYYY-MM-DD¨) from dual;

TO_CHAR(SYSDATE,¨ADYYYY-MM-DD¨

------------------------------

公元 2007-12-14

BC/B.C. 公元标识

例如

SQL> select to_char(sysdate,¨BC YYYY-MM-DD¨) from dual;

TO_CHAR(SYSDATE,¨BCYYYY-MM-DD¨

------------------------------

公元 2007-12-14

AM/A.M. 子午线标识

例如:

SQL> select to_char(sysdate,¨YYYY-MM-DD AM hh24:mi:ss¨) from dual;

TO_CHAR(SYSDATE,¨YYYY-MM-DDAMH

------------------------------

2007-12-14 下午 13:41:58

PM/P.M. 子午线标识

例如:

SQL> select to_char(sysdate,¨YYYY-MM-DD PM hh24:mi:ss¨) from dual;

TO_CHAR(SYSDATE,¨YYYY-MM-DDPMH

------------------------------

2007-12-14 下午 13:42:23

CC/SCC 世纪标识,S前缀指定如遇公元前的显示,会在显示前加(-)

提示:

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

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

例如:

SQL> select to_char(to_date(¨2000-8-3¨,¨YYYY-MM-DD¨),¨cc¨) from dual;

TO_CHAR(TO_DATE(¨2000-8-3¨,¨YY

------------------------------

20

SQL> select to_char(to_date(¨2001-8-3¨,¨YYYY-MM-DD¨),¨cc¨) from dual;

TO_CHAR(TO_DATE(¨2001-8-3¨,¨YY

------------------------------

21

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

例如:

SQL> select to_char(to_date(¨2007-12-14¨,¨yyyy-mm-dd¨),¨D¨) from dual;

TO_CHAR(TO_DATE(¨2007-12-14¨,¨

------------------------------

6

DD 指定日期在当月中的天数(范围:1-31)

例如:

SQL> select to_char(to_date(¨2007-12-14¨,¨yyyy-mm-dd¨),¨DD¨) from dual;

TO_CHAR(TO_DATE(¨2007-12-14¨,¨

------------------------------

14

DDD 指定日期在当年中的天数(范围:1-366)

例如:

SQL> select to_char(to_date(¨2007-12-14¨,¨yyyy-mm-dd¨),¨DDD¨) from dual;

TO_CHAR(TO_DATE(¨2007-12-14¨,¨

------------------------------

348

DAY 指定日期在周中的名称

例如:

SQL> select to_char(to_date(¨2007-12-14¨,¨yyyy-mm-dd¨),¨Day¨) from dual;

TO_CHAR(TO_DATE(¨2007-12-14¨,¨

------------------------------

星期五

MON 返回指定日期的月份简写

例如:

SQL> select to_char(sysdate,¨MON¨) from dual;

TO_CHAR(SYSDATE,¨MON¨)

----------------------

12 月

与DY同,中文看不出简写效果。

MONTH 返回指定日期的月份全称

例如:

SQL> select to_char(sysdate,¨MONTH¨) from dual;

TO_CHAR(SYSDATE,¨MONTH¨)

------------------------

12 月

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

例如:

SQL> select to_char(sysdate,¨year¨) from dual;

TO_CHAR(SYSDATE,¨YEAR¨)

------------------------------------------

two thousand seven

YYYY/SYYYY 返回数字型年,此处s前缀与SCC处相同

例如:

SQL> select to_char(sysdate,¨yyyy¨) from dual;

TO_CHAR(SYSDATE,¨YYYY¨)

-----------------------

2007

MM 返回指定日期的月份(范围:1-12)

例如:

SQL> select to_char(sysdate,¨MM¨) from dual;

TO_CHAR(SYSDATE,¨MM¨)

---------------------

12

HH 小时(范围:1-12)

例如:

SQL> select to_char(sysdate,¨am hh¨) from dual;

TO_CHAR(SYSDATE,¨AMHH¨)

-----------------------

下午 02

HH12 小时(范围:1-12)

例如:

SQL> select to_char(sysdate,¨am hh12¨) from dual;

TO_CHAR(SYSDATE,¨AMHH12¨)

-------------------------

下午 02

HH24 小时(范围:0-23)

例如:

SQL> select to_char(sysdate,¨am hh24¨) from dual;

TO_CHAR(SYSDATE,¨AMHH24¨)

-------------------------

下午 14

MI 返回指定时间的分钟(范围0-59)

例如:

SQL> select to_char(sysdate,¨MI¨) from dual;

TO_CHAR(SYSDATE,¨MI¨)

---------------------

05

SS 返回指定时间的秒数(范围:0-59)

例如:

SQL> select to_char(sysdate,¨ss¨) from dual;

TO_CHAR(SYSDATE,¨SS¨)

---------------------

34

FF[1-9] 返回毫秒数,可指定长度1-9,默认6位

例如:

SQL> select to_char(systimestamp,¨ff4¨) from dual;

TO_CHAR(S

---------

6710

Y,YYY 返回有逗号分隔显示的年

例如:

SQL> select to_char(sysdate,¨y,yyy¨) from dual;

TO_CHAR(SYSDATE,¨Y,YYY¨)

------------------------

2,007

I/IY/IYY/IYYY 返回ISO标准年

例如:

SQL> select to_char(to_date(¨187-4-3¨,¨yyyy-mm-dd¨),¨IYYY¨) from dual;

TO_CHAR(TO_DATE(¨187-4-3¨,¨YYY

------------------------------

0187

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

例如:

SQL> select to_char(sysdate,¨yy¨) from dual;

TO_CHAR(SYSDATE,¨YY¨)

---------------------

07

W 返回指定日期在当月中的第X周(范围:1-5)

例如:

SQL> select to_char(to_date(¨2007-6-18¨,¨yyyy-mm-dd¨),¨w¨) from dual;

TO_CHAR(TO_DATE(¨2007-6-18¨,¨Y

------------------------------

3

WW 返回指定日期在当年中的第X周(范围:1-53)

例如:

SQL> select to_char(to_date(¨2007-6-18¨,¨yyyy-mm-dd¨),¨ww¨) from dual;

TO_CHAR(TO_DATE(¨2007-6-18¨,¨Y

------------------------------

25

IW 指定日期在当年中第X周(范围:1-52或1-53(润年))

例如:

SQL> select to_char(sysdate,¨IW¨) from dual;

TO_CHAR(SYSDATE,¨IW¨)

---------------------

50

RM 以罗马数字形式返回月份(范围I-XII)

例如:

SQL> select to_char(to_date(¨2007-11-3¨,¨yyyy-mm-dd¨),¨RM¨) from dual;

TO_CHAR(TO_DATE(¨2007-11-3¨,¨Y

------------------------------

XI

Q 返回指定日期的季度(范围:1-4)

例如:

SQL> select to_char(to_date(¨2007-2-3¨,¨yyyy-mm-dd¨),¨q¨) from dual;

TO_CHAR(TO_DATE(¨2007-2-3¨,¨YY

------------------------------

1

J 自公元前 4712 年1月1日到指定日期的总天数

例如:

SQL> select to_char(sysdate,¨J¨) from dual;

TO_CHAR(SYSDATE,¨J¨)

--------------------

2454449

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值