Oracle字符串-日期转换

一、TO_CHAR日期转换为字符串

1、取得当前日期是本月的第几周

    select to_char(sysdate,'YYYYMMDD W HH24:MI:SS') from dual; 
    select TO_CHAR(SYSDATE,'YY') from dual; 
    select to_char(sysdate,'W') from dual; 

SQL>  select to_char(sysdate,'YYYYMMDD W HH24:MI:SS') from dual;

TO_CHAR(SYSDATE,'YY
-------------------
20231227 4 10:25:27

SQL>  select TO_CHAR(SYSDATE,'YY') from dual;

TO
--
23

SQL> select to_char(sysdate,'W') from dual;

T
-
4

SQL>


2、取得当前日期是一个星期中的第几天,注意星期日是第一天 。

    select sysdate,to_char(sysdate,'D') from dual;

类似:
        select to_char(sysdate,'yyyy') from dual; --年 
        select to_char(sysdate,'Q') from dual; --季 
        select to_char(sysdate,'mm') from dual; --月 
        select to_char(sysdate,'dd') from dual; --日 ,星期日是第一天
    ddd 年中的第几天 
    WW 年中的第几个星期 
    W 该月中第几个星期 
    D 周中的星期几 ,星期日是第一天
    hh 小时(12) 
    hh24 小时(24) 
    Mi 分 
    ss 秒

SQL> select to_char(sysdate,'yyyy/mm/dd hh24:mi:ss') from dual;

TO_CHAR(SYSDATE,'YY
-------------------
2023/12/27 10:28:34

SQL> select sysdate,to_char(sysdate,'D') from dual;

SYSDATE        T
-------------- -
27-12月-23     4

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

TO_C
----
2023

SQL> select to_char(sysdate,'Q') from dual;

T
-
4

SQL> select to_char(sysdate,'mm') from dual;

TO
--
12

SQL> select to_char(sysdate,'dd') from dual;

TO
--
27

3.取得当前时间的毫秒数据

SELECT TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3') FROM DUAL;

SQL> SELECT TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3') FROM DUAL;

TO_CHAR(SYSTIMESTAMP,'Y
-----------------------
2023-12-27 10:46:14.727

SQL> SELECT TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3') FROM DUAL;

TO_CHAR(SYSTIMESTAMP,'Y
-----------------------
2023-12-27 10:46:15.211

二、TO_DATE字符串转换为日期

1、格式: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        
    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 ....
            
2、日期和字符转换函数用法(to_date,to_char)。

    select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual;   //日期转化为字符串   
    select to_char(sysdate,'yyyy') as nowYear   from dual;   //获取时间的年   
    select to_char(sysdate,'mm')    as nowMonth from dual;   //获取时间的月   
    select to_char(sysdate,'dd')    as nowDay    from dual;   //获取时间的日   
    select to_char(sysdate,'hh24') as nowHour   from dual;   //获取时间的时   
    select to_char(sysdate,'mi')    as nowMinute from dual;   //获取时间的分   
    select to_char(sysdate,'ss')    as nowSecond from dual;   //获取时间的秒
    select to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss')    from dual//

SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual;

NOWTIME
-------------------
2023-12-27 10:33:07

SQL> select to_char(sysdate,'yyyy') as nowYear   from dual;

NOWY
----
2023

SQL> select to_char(sysdate,'mm')    as nowMonth from dual;

NO
--
12

SQL> select to_char(sysdate,'dd')    as nowDay    from dual;

NO
--
27

SQL> select to_char(sysdate,'hh24') as nowHour   from dual;

NO
--
10

SQL> select to_char(sysdate,'mi')    as nowMinute from dual;

NO
--
33

SQL> select to_char(sysdate,'ss')    as nowSecond from dual;

NO
--
47

SQL> select to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss')    from dual
  2  ;

TO_DATE('2004-
--------------
07-5月 -04

————————————————
版权声明:本文为CSDN博主「@一头雾水@」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36511401/article/details/101344885

你可能感兴趣的:(oracle,TO_DATE,TO_CHAR)