Oracle中的时间类型格式2008-7-22怎么转换成 25-Aug 格式的,谢谢!

解决方案 »

  1.   

    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
      

  2.   

    1楼说的基本没有错,但有
    但是要 正确地设置 nls_language参数。
    alter session set nls_language='AMERICAN';
      

  3.   

    Oracle中的时间类型格式2008-7-22怎么转换成 25-Aug 格式的
    ===================================================
    不存在格式转换的问题,无论显示的是哪种格式,数据库本身都是以同一种格式保存的。