ORACLE TO_CHAR()函数中日期格式的使用

下面以实例来说明:

SQL> set linesize 200

SQL> show parameter nls_date_language

NAME                     TYPE            VALUE

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

nls_date_language             string            AMERICAN

SQL> show parameter nls_date_format

NAME                     TYPE            VALUE

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

nls_date_format              string            DD-MON-RR

SQL> select sysdate from dual;   --不加输出格式时,就是使用默认的日期格式 DD-MON-RR,日期描述语言也是默认的日期用语言AMERICAN

SYSDATE

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

04-DEC-15

SQL> select to_char(sysdate,‘yyyy-mm-dd‘) from dual;  --指定输出格式为‘yyyy-mm-dd‘

TO_CHAR(SYSDATE,‘YYY

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

2015-12-04

在日期格式中,对月份的格式主要有以下几种:

mm: 以数字表示(1-12)

mon: 相应语言月的简写,比如英文中12月的简写是 dec.

MON: 功能同上,只不过简写换为大写

month: 相应语言月的全称,比如英文中的12月写为december。

MONTH:功能同上,只不过换为大写表示

SQL> select to_char(sysdate,‘yyyy-mon-dd‘) from dual;

TO_CHAR(SYSDATE,‘YYYY-MON-DD‘)

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

2015-dec-04

SQL> select to_char(sysdate,‘yyyy-month-dd‘) from dual;

TO_CHAR(SYSDATE,‘YYYY-MONTH-DD‘)

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

2015-december -04

SQL> select to_char(sysdate,‘yyyy-MONTH-dd‘) from dual;

TO_CHAR(SYSDATE,‘YYYY-MONTH-DD‘)

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

2015-DECEMBER -04

在日期格式中,对日的格式主要有以下几种:

dd: 以数字表示(1-31)

dy: 相应语言中对周中每一天的称谓的简写。比如英文中星期五的简写是fri.

DY: 功能同上,换为大写表示

Dy: 功能同上,换为首字母大写表示

day:相应语言中对周中每一天的称谓的全称。比如英文中星期五的全称是friday.

DAY:功能同上,换为大写表示

Day:功能同上,换为首字母大写表

SQL> select to_char(sysdate,‘yyyy-mm-Dy‘) from dual;

TO_CHAR(SYSDATE,‘YYYY-MM-DY‘)

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

2015-12-Fri

SQL> select to_char(sysdate,‘yyyy-mm-dy‘) from dual;

TO_CHAR(SYSDATE,‘YYYY-MM-DY‘)

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

2015-12-fri

SQL> select to_char(sysdate,‘yyyy-mm-DY‘) from dual;

TO_CHAR(SYSDATE,‘YYYY-MM-DY‘)

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

2015-12-FRI

SQL> select to_char(sysdate,‘yyyy-mm-day‘) from dual;

TO_CHAR(SYSDATE,‘YYYY-MM-DAY‘)

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

2015-12-friday

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

TO_CHAR(SYSDATE,‘YYYY-MM-DDDAY‘)

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

2015-12-04 friday

格式后缀

SP:相应日期部分的英文拼写

TH:相应日期部分日的序号,即在表示日的数字后加"th"

SQL> select to_char(sysdate,‘yyyy-mm-ddth‘) from dual;

TO_CHAR(SYSDATE,‘YYYY-MM

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

2015-12-04th

SQL> select to_char(sysdate,‘yyyy-mm-ddspth‘) from dual;

TO_CHAR(SYSDATE,‘YYYY-MM-DDSPTH‘)

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

2015-12-fourth

SQL> select to_char(sysdate,‘yyyy-mmsp-dd‘) from dual;

TO_CHAR(SYSDATE,‘YYYY-MMSP-D

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

2015-twelve-04

SQL> select to_char(sysdate,‘yyyy-mmspth-dd‘) from dual;

TO_CHAR(SYSDATE,‘YYYY-MMSPTH-DD‘

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

2015-twelfth-04

SQL> select to_char(sysdate,‘yyyyth-mm-dd‘) from dual;

TO_CHAR(SYSDATE,‘YYYYTH-

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

2015th-12-04

SQL> select to_char(sysdate,‘yyyy-mm-ddthsp‘) from dual;

TO_CHAR(SYSDATE,‘YYYY-MM-DDTHSP‘)

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

2015-12-fourth

SQL> select to_char(sysdate,‘yyyysp-mm-dd‘) from dual;

TO_CHAR(SYSDATE,‘YYYYSP-MM-DD‘)

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

two thousand fifteen-12-04

year: 把年数用英文拼写的方式输出

YEAR:功能同上,只不过大写输出

SQL> select to_char(sysdate,‘year-mm-dd‘) from dual;

TO_CHAR(SYSDATE,‘YEAR-MM-DD‘)

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

twenty fifteen-12-04

把nls_date_language设为中文后,相应的月份和星期几用中文表示。

SQL> alter session set nls_date_language=‘simplified chinese‘;   --参数中间有空格时,要用单引号把整个参数括起来。

Session altered.

SQL> show parameter nls_date

NAME                     TYPE            VALUE

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

nls_date_format              string            DD-MON-RR

nls_date_language             string            simplified chinese

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

TO_CHAR(SYSDATE,‘YYY

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

2015-12-04

SQL> select to_char(sysdate,‘yyyy-mon-dd‘) from dual;

TO_CHAR(SYSDATE,‘YYYY-MON-DD‘)

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

2015-12月-04

SQL> select to_char(sysdate,‘yyyy-month-dd‘) from dual;

TO_CHAR(SYSDATE,‘YYYY-MONTH-DD‘)

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

2015-12月-04

中文对日期的表示没有大小写和缩写的概念,Dy,DY,dy均是同样的输出,其它同。

SQL> select to_char(sysdate,‘yyyy-mm-Dy‘) from dual;

TO_CHAR(SYSDATE,‘YYYY-MM-DY‘)

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

2015-12-星期五

SQL> select to_char(sysdate,‘yyyy-mm-DY‘) from dual;

TO_CHAR(SYSDATE,‘YYYY-MM-DY‘)

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

2015-12-星期五

SQL> select to_char(sysdate,‘yyyy-mm-day‘) from dual;

TO_CHAR(SYSDATE,‘YYYY-MM-DAY‘)

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

2015-12-星期五

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

TO_CHAR(SYSDATE,‘YYYY-MM-DDDAY‘)

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

2015-12-04 星期五

year,TH和SP只限于用英文输出表示

SQL> select to_char(sysdate,‘yyyy-mm-ddspth‘) from dual;

TO_CHAR(SYSDATE,‘YYYY-MM-DDSPTH‘)

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

2015-12-fourth

SQL> select to_char(sysdate,‘yyyysp-mm-dd‘) from dual;

TO_CHAR(SYSDATE,‘YYYYSP-MM-DD‘)

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

two thousand fifteen-12-04

SQL> select to_char(sysdate,‘year-mm-dd‘) from dual;

TO_CHAR(SYSDATE,‘YEAR-MM-DD‘)

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

twenty fifteen-12-04

SQL> select to_char(sysdate,‘yyyysp-mmsp-ddsp‘) from dual;

TO_CHAR(SYSDATE,‘YYYYSP-MMSP-DDSP‘)
----------------------------------------------------------------------------------------------------------------------------
two thousand fifteen-twelve-four

dl:长日期格式输出

SQL> select to_char(sysdate,‘DL‘) from dual;

TO_CHAR(SYSDATE,‘DL‘)

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

星期五, 12月 04, 2015

修改日历为中华民国日历后,纪年变为民国纪写

SQL> alter session set nls_calendar=‘ROC Official‘;

Session altered.

SQL> select to_char(sysdate,‘DL‘) from dual;   --2015-1911=104,即公元2015年就是民国104年

TO_CHAR(SYSDATE,‘DL‘)

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

104年12月4日 星期五

e: 相应纪年的简称

ee: 相应纪年的全称

SQL> select to_char(sysdate,‘year-mm-dd e‘) from dual;

TO_CHAR(SYSDATE,‘YEAR-MM-DDE‘)

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

one hundred four-12-04 民國

SQL> select to_char(sysdate,‘EE‘) from dual;

TO_CHAR(SYSDATE,‘EE‘)

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

中華民國

可以在函数中指定NLS参数,整个参数和值要用单引号(‘)括起来,从而只对该次执行生效。

SQL> select to_char(sysdate,‘yyyy-mm-dd‘,‘nls_calendar=GREGORIAN‘) from dual;

TO_CHAR(SYSDATE,‘YYY

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

2015-12-04

SQL> select to_char(sysdate,‘yyyy-mon-dd‘) from dual;

TO_CHAR(SYSDATE,‘YYYY-MON-DD‘)

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

0104-12-04

SQL> alter session set nls_calendar=GREGORIAN;

Session altered.

SQL> show parameter nls_date

NAME                     TYPE            VALUE

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

nls_date_format              string            DD-MON-RR

nls_date_language             string            american

SQL> alter session set nls_date_language=‘simplified chinese‘;

Session altered.

SQL> show parameter nls_date

NAME                     TYPE            VALUE

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

nls_date_format              string            DD-MON-RR

nls_date_language             string            simplified chinese

SQL> select to_char(sysdate,‘yyyy-mon-dd‘) from dual;

TO_CHAR(SYSDATE,‘YYYY-MON-DD‘)

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

2015-12月-04

SQL> select to_char(sysdate,‘yyyy-mon-dd‘,‘nls_calendar=‘‘ROC Official‘‘‘) from dual;   --由于参数值中有空格,所以参数值要用单引号括起来,由于其外层又有单引号,要用两个单引号来表示一个单引号。

TO_CHAR(SYSDATE,‘YYYY-MO

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

0104-12-04

SQL> select to_char(sysdate,‘yyyy-mon-dd day‘) from dual;

TO_CHAR(SYSDATE,‘YYYY-MON-DDDAY‘)

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

2015-12月-04 星期五

SQL> select to_char(sysdate,‘yyyy-mon-dd day‘,‘nls_calendar=‘‘ROC Official‘‘‘) from dual;

TO_CHAR(SYSDATE,‘YYYY-MON-DDDAY‘,‘NLS_CALENDAR=‘‘R

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

0104-12-04 星期五

可以在格式中指定其它字符,用双引号(")把相应的字符括起来。输出时,原样输出。

SQL> select to_char(sysdate,‘"民国"yyyy-mon-dd day‘,‘nls_calendar=‘‘ROC Official‘‘‘) from dual;

TO_CHAR(SYSDATE,‘"民国"YYYY-MON-DDDAY‘,‘NLS_CALENDAR=‘‘ROCOFFI

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

民国0104-12-04 星期五

可以在函数中指定多个NLS参数,两个参数间用空格隔开。

SQL> select to_char(sysdate,‘"民国"yyyy-mon-dd day‘,‘nls_calendar=‘‘ROC Official‘‘ nls_date_language=american‘) from dual;

TO_CHAR(SYSDATE,‘"民国"YYYY-MON-DDDAY‘,‘NLS_CALENDAR=‘‘ROCOFFICIAL‘‘NLS_DATE_LANGUAGE=AMERICAN‘)

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

民国0104-12-04 friday

d:用数字表示星期(1-7)。参数NLS_TERRITORY默认配置时认为一周是从周日开始的,所以,周日是1,周六是7.

SQL> select to_char(sysdate,‘yyyy-mm-dd day d‘) from dual;

TO_CHAR(SYSDATE,‘YYYY-MM-DDDAYD‘)

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

2015-12-04 星期五 6

若希望实现周一是1,周日是7的效果,可使用如下方法来实现

SQL> select to_char(sysdate,‘yyyy-mm-dd day‘,‘nls_date_language=‘‘numeric date language‘‘‘) from dual;

TO_CHAR(SYSDATE,‘YYYY-MM-DDDAY‘,‘

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

2015-12-04 5

时间: 2024-12-13 11:39:08

ORACLE TO_CHAR()函数中日期格式的使用的相关文章

oracle trunc 函数处理日期格式

oracle trunc 函数处理日期格式 select TRUNC(LAST_DAY(SYSDATE))+29+20/24 from dual--下个月的某一天几点几分 2015/11/29 20:00:00 select add_months(TRUNC(SYSDATE,'mm'),1)+5/24 from dual--下个月1号的几点2015/11/1 5:00:00 select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;  -

oracle trunc 函数处理日期格式,

select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') from dual; --显示当前时间 2017 - 04 - 24 18 :42 :17 select trunc(sysdate, 'year') from dual; --截取到年(本年的第一天) 2017 / 1 / 1 select trunc(sysdate, 'q') from dual; --截取到季度(本季度的第一天) 2017 / 4 / 1 select trunc(sysda

Oracle中的TO_DATE和TO_CHAR函数以及日期处理

本文不再更新,可能存在内容过时的情况,实时更新请移步我的新博客:Oracle中的TO_DATE和TO_CHAR函数以及日期处理: oracle 中 TO_DATE 函数的时间格式,以 2008-09-10 23:45:56 为例. Oracle中日期的格式 Year(年): 格式 说明 显示值 备注 yy two digits(两位年) 08 yyy three digits(三位年) 008 yyyy four digits(四位年) 2008 Month(月): 格式 说明 显示值 备注 m

oracle中日期格式'yyyy-mm-dd'和'yyyymmdd'的区别

对于年月日中"日"是个位的情况下,处理不一样,'yyyymmdd'格式没问题,而式'yyyy-mm-dd'格式则不行,请看: SQL> alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss'; Session altered. SQL> select to_date('2007059','yyyy-mm-dd hh24:mi:ss') from dual;select to_date('2007059','yy

SQLserver中用convert函数转换日期格式

SQLserver中用convert函数转换日期格式2008-01-15 15:51SQLserver中用convert函数转换日期格式 SQL Server中文版的默认的日期字段datetime格式是yyyy-mm-dd Thh:mm:ss.mmm 例如: select getdate() 2004-09-12 11:06:08.177 整理了一下SQL Server里面可能经常会用到的日期格式转换方法: 举例如下: select CONVERT(varchar, getdate(), 120

oracle 常用函数之 日期函数

---------------------------------------------日期/时间函数-------------------------------------------------1: SYSDATE用来得到系统的当前日期 SELECT SYSDATE FROM DUAL; --2: ADD_MONTHS增加或减去月份 SELECT TO_CHAR(ADD_MONTHS(TO_DATE('20080818','YYYYMMDD'),2), 'YYYY-MM-DD') FRO

SQL Server 中日期格式转换CONVERT(varchar, getdate(), 120 )

CONVERT(varchar, getdate(), 120 ) 这是一个mssql数据库的函数,Convert函数的作用,是进行数据类型的转换. 而您所问的这个convert(char(20),openDate,120)则是对日期字段,进行格式化转换成字符格式的函数. 接下来,对您函数中的三个参数,分别进行说明: 1.char(20),是要转换成的目标数据类型及长度,这里您还可以使用varchar(20),也可以使用varchar(10),如果使用20,则转换后的字符串可以是20的长度,如果

java中日期格式的转换和应用

java中主要有3个类用于日期格式转换    DateFormat .SimpleDateFormat.Calendar 1.SimpleDateFormat 该类是DateFormat的子类,一般日期的格式化都是实例化该类实现 具体应用如下 package com.gree.java; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.log

Spring中日期格式转换

一.背景 使用SSM+Maven搭建项目 其中Mysql中 日期字段是DATETIME类型 Controller返回给前端的Json数据的是long类型   "Date":"1528324651545" 我需要的是yyyy-MM-dd格式的 二.解决 1.在该实体对应的mapper文件里,修改resultMap中列的数据类型 1 <mapper namespace="com.ssm.mapper.PeopleMapper"> 2 3