• 【转发】Oracle中to_char和to_date的用法


    TO_CHAR 是把日期或数字转换为字符串
    TO_DATE 是把字符串转换为数据库中得日期类型转换函数
    TO_NUMBER 将字符转化为数字

     TO_CHAR
    使用TO_CHAR函数处理数字
    TO_CHAR(number, '格式')
    TO_CHAR(salary,’$99,999.99’);
    使用TO_CHAR函数处理日期
    TO_CHAR(date,’格式’);

     TO_NUMBER
    使用TO_NUMBER函数将字符转换为数字
    TO_NUMBER(char[, '格式'])

     TO_DATE
    使用TO_DATE函数将字符转换为日期
    TO_DATE(char[, '格式'])

     数字格式格式
    9 代表一个数字
    0 强制显示0
    $ 放置一个$符
    L 放置一个浮动本地货币符
    . 显示小数点
    , 显示千位指示符

     日期格式
    格式控制 描述
    YYYY、YYY、YY 分别代表4位、3位、2位的数字年
    YEAR 年的拼写
    MM 数字月
    MONTH 月的全拼
    MON 月的缩写
    DD 数字日
    DAY 星期的全拼
    DY 星期的缩写
    AM 表示上午或者下午
    HH24、HH12 12小时制或24小时制
    MI 分钟
    SS 秒钟
    SP 数字的拼写
    TH 数字的序数词

    “特殊字符” 假如特殊字符
    HH24:MI:SS AM 15:43:20 PM

    日期例子:
    SELECT TO_DATE('2006-05-01 19:25:34', 'YYYY-MM-DD HH24:MI:SS') FROM DUAL
    SELECT TO_DATE('2006-05-01 19:25', 'YYYY-MM-DD HH24:MI') FROM DUAL
    SELECT TO_DATE('2006-05-01 19', 'YYYY-MM-DD HH24') FROM DUAL
    SELECT TO_DATE('2006-05-01', 'YYYY-MM-DD') FROM DUAL
    SELECT TO_DATE('2006-05', 'YYYY-MM') FROM DUAL
    SELECT TO_DATE('2006', 'YYYY') FROM DUAL

    日期说明:
    当省略HH、MI和SS对应的输入参数时,Oracle使用0作为DEFAULT值。如果输入的日期数据忽略时间部分,Oracle会将时、分、秒部分都置为0,也就是说会取整到日。

    同样,忽略了DD参数,Oracle会采用1作为日的默认值,也就是说会取整到月。

    但是,不要被这种“惯性”所迷惑,如果忽略MM参数,Oracle并不会取整到年,取整到当前月。

    注意:
    1.在使用Oracle的to_date函数来做日期转换时,可能会直觉地采用“yyyy-MM-dd HH:mm:ss”的格式作为格式进行转换,但是在Oracle中会引起错误:“ORA 01810 格式代码出现两次”。如:select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mm:ss') from dual;原因是SQL中不区分大小写,MM和mm被认为是相同的格式代码,所以Oracle的SQL采用了mi代替分钟。select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual;
    2.另要以24小时的形式显示出来要用HH24
    select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;//mi是分钟
    select to_char(sysdate,'yyyy-MM-dd HH24:mm:ss') from dual;//mm会显示月份

    TO_DATE格式(以时间:2007-11-02 13:45:25为例)
       
            Year:
            yy two digits 两位年 显示值:07
            yyy three digits 三位年 显示值:007
            yyyy four digits 四位年 显示值:2007
                
            Month:
            mm number 两位月 显示值:11
            mon abbreviated 字符集表示 显示值:11月,若是英文版,显示nov
            month spelled out 字符集表示 显示值:11月,若是英文版,显示november
              
            Day:
            dd number 当月第几天 显示值:02
            ddd number 当年第几天 显示值:02
            dy abbreviated 当周第几天简写 显示值:星期五,若是英文版,显示fri
            day spelled out 当周第几天全写 显示值:星期五,若是英文版,显示friday
            ddspth spelled out, ordinal twelfth
                 
                  Hour:
                  hh two digits 12小时进制 显示值:01
                  hh24 two digits 24小时进制 显示值:13
                  
                  Minute:
                  mi two digits 60进制 显示值:45
                  
                  Second:
                  ss two digits 60进制 显示值:25
                  
                  其它
                  Q digit 季度 显示值:4
                  WW digit 当年第几周 显示值:44
                  W digit 当月第几周 显示值:1
                  
            24小时格式下时间范围为: 0:00:00 - 23:59:59....
            12小时格式下时间范围为: 1:00:00 - 12:59:59 ....

    更详细的见地址:http://www.douban.com/note/31849478/

    学习了 仅供参考

  • 相关阅读:
    网络流初步——增广路算法(EK)模板
    求大组合数
    RMQ问题
    欧拉函数
    [LintCode] Minimum Path Sum
    [LintCode] Unique Paths II
    [LintCode] Unique Paths
    [LintCode] Flip Bits
    [LintCode] O(1) Check Power of 2
    [LintCode] Count 1 in Binary
  • 原文地址:https://www.cnblogs.com/Answer900310/p/2964837.html
Copyright © 2020-2023  润新知