Oracle中的时间类型格式问题

liushimen 2008-05-13 12:09:58
Oracle中的时间类型格式2008-7-22怎么转换成 25-Aug 格式的,谢谢!
...全文
958 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ruihuahan 2008-05-15
  • 打赏
  • 举报
回复
Oracle中的时间类型格式2008-7-22怎么转换成 25-Aug 格式的
===================================================
不存在格式转换的问题,无论显示的是哪种格式,数据库本身都是以同一种格式保存的。
chunyu.wu 2008-05-14
  • 打赏
  • 举报
回复
2.日期类型转换
将日期型转换成字符串时,可以按新的格式显示。
如格式YYYY-MM-DD HH24:MI:SS表示“年-月-日 小时:分钟:秒”。Oracle的日期类型是包含时间在内的。
主要的日期格式字符的含义如表2-9所示。
表2-9 日期转换格式字符

代 码 代表的格式 例 子
AM、PM 上午、下午 08 AM
D 数字表示的星期(1~7) 1,2,3,4,5,6,7
DD 数字表示月中的日期(1~31) 1,2,3,…,31
MM 两位数的月份 01,02,…,12
Y、YY、YYY、YYYY 年份的后几位 3,03,003,2003
RR 解决Y2K问题的年度转换
DY 简写的星期名 MON,TUE,FRI,…
DAY 全拼的星期名 MONDAY,TUESDAY,…
MON 简写的月份名 JAN,FEB,MAR,…
MONTH 全拼的月份名 JANUARY,FEBRUARY,…
HH、HH12 12小时制的小时(1~12) 1,2,3,…,12
HH24 24小时制的小时(0~23) 0,1,2,…,23
MI 分(0~59) 0,1,2,…,59
SS 秒(0~59) 0,1,2,…,59
,./-;: 原样显示的标点符号
'TEXT' 引号中的文本原样显示 TEXT


【训练3】 将日期转换成带时间和星期的字符串并显示。
执行以下查询:
SELECT TO_CHAR(sysdate,'YYYY-MM-DD HH24:MI:SS AM DY') FROM dual;
结果为:
TO_CHAR(SYSDATE,'YYYY-MM-DD HH24
----------------------------------------------------------
2004-02-07 15:44:48 下午 星期六
说明:该语句中的第一个参数表示要转换的日期,第二个参数是格式字符串,表示转换后的格式,结果类型为字符串。“YYYY”为4位的年份,“MM”为两位的月份,“DD”为两位的日期,“HH24”表示显示24小时制的小时,“MI”表示显示分钟,“SS”表示显示秒,“AM”表示显示上午或下午(本例中为下午),“DY”表示显示星期。“-”、“:”和空格原样显示,用于分割日期和时间。转换出来的系统时间为:2004年2月7日(星期六)下午15点44分48秒。
还可以按其他的格式显示。以下查询中插入中文的年月日,其中原样显示部分区别于外层的单引号,需要用双引号引起。
【训练4】 将日期显示转换成中文的年月日。
输入并执行查询:
SELECT TO_CHAR(sysdate,'YYYY"年"MM"月"DD"日"') FROM dual;
执行结果为:
TO_CHAR(SYSDAT
-------------------------
2003年11月18日
说明:双引号中的中文字“年”、“月”、“日”原样显示,单引号为字符串的界定标记,区别于双引号,不能混淆。
【训练5】 将雇佣日期转换成字符串并按新格式显示。
输入并执行查询:
SELECT ename, to_char(hiredate, 'DD Month YYYY') HIREDATE
FROM emp;
执行结果为:
ENAME HIREDATE
------------ -----------------------
SMITH 17 12月 1980
ALLEN 20 2月 1981
说明:Month表示月份的特殊格式,如“12月”。年度用4位显示。
对于数字型的日期格式,可以用数字或全拼格式显示,即在格式字符后面添加TH或SP。TH代表序列,SP代表全拼。
【训练6】 以全拼和序列显示时间。
执行以下查询:
SELECT SYSDATE,to_char(SYSDATE,'yyyysp'),to_char(SYSDATE,'mmspth'),
to_char(SYSDATE,'ddth') FROM dual;
执行结果为:
SYSDATE TO_CHAR(SYSDATE,'YYYYSP') TO_CHAR( TO_C
------------- -------------------------------------------------------------- --------------- --------
07-2月 -04 two thousand four second 07th
说明:“two thousand four”为全拼表示的2004年;“second”为全拼序列表示的2月;“07th”为用序列表示的7号。
在格式字符中,前两个字符代表显示结果的大小写。如果格式中的前两个字符是大写,则输出结果的全拼也为大写。如果格式中的前两个字符是小写,则输出结果的全拼也为小写。如果格式中的前两个字符的第一个字符是大写,第二个字符是小写,则输出结果的全拼也为大写开头,后面为字符小写。
【训练7】 时间显示的大小写。
步骤1:执行以下查询:
SELECT SYSDATE,to_char(SYSDATE,'yyyysp') FROM dual;
结果为:
SYSDATE TO_CHAR(SYSDATE,'YYYYSP')
------------- ----------------------------------------------
07-2月 -04 two thousand four
步骤2:执行以下查询:
SELECT to_char(SYSDATE,'Yyyysp') FROM dual;
结果为:
SYSDATE TO_CHAR(SYSDATE,'YYYYSP')
-------------- -----------------------------------------------
Two Thousand Four
步骤3:执行以下查询:
SELECT SYSDATE,to_char(SYSDATE,'YYyysp') FROM dual;
结果为:
SYSDATE TO_CHAR(SYSDATE,'YYYYSP')
-------------- -----------------------------------------------
TWO THOUSAND FOUR
说明:步骤1输出全拼小写的年度,步骤2输出全拼的以大写开头的年度,步骤3输出全拼大写的年度。
===================================================================================================
综合以上:
SELECT TO_CHAR(TO_DATE('20080722'),'DD MON')
FROM dual
结果:
22 JUL

多壮志 2008-05-14
  • 打赏
  • 举报
回复
1楼说的基本没有错,但有
但是要 正确地设置 nls_language参数。
alter session set nls_language='AMERICAN';
ehuman 2008-05-14
  • 打赏
  • 举报
回复
值得学习。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧