oracle數據庫中DATE類型和TO_DATE()函數介紹


介紹TO_DATE之前我們先看下 DATE 數據類型:

DATE 數據類型

DATE 數據類型允許你存儲當前的時間點,但要注意的是,這個時間點是精確到秒的,

毫秒是無法用這個格式存儲的

 

DATE數據類型存儲 年,月,天,小時,分鍾和秒

 

DATE數據類型的格式化 

SELECT
  value
FROM
  V$NLS_PARAMETERS
WHERE
  parameter = 'NLS_DATE_FORMAT';

 

在oracle數據庫系統中,我們可以看到它的值是:

DD-MON-RR

我們可以通過修改NLS_DATE_FORMAT 的值來改變系統默認的日期輸出格式:

ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD';

我們來驗證我們的修改,執行下面的語句

SELECT
  sysdate
FROM
  dual;

結果:

2020-06-11

進入主題 TO_DATE():

SELECT
  TO_DATE( '2020-06-11', 'yyyy-mm-dd' )
FROM
  dual;   

結果:

2020-06-11

除了TO_DATE()函數,我們還可以使用如下的語法通過指定DATE字符來實現:

DATE 'YYYY-MM-DD'

我們來創建一張表作為演示:

CREATE TABLE my_events (
    event_id NUMBER GENERATED BY DEFAULT AS IDENTITY,
    event_name VARCHAR2 ( 255 ) NOT NULL,
    location VARCHAR2 ( 255 ) NOT NULL,
    start_date DATE NOT NULL,
    end_date DATE NOT NULL,
    PRIMARY KEY ( event_id ) 
);

分別使用DATE字符和TO_DATE函數插入數據:

INSERT INTO my_events
            (event_name,
             location,
             start_date,
             end_date)
VALUES     ( 'Oracle OpenWorld',
        'San Francisco, CA, USA',
            TO_DATE( 'October 01, 2017', 'MONTH DD, YYYY' ),
            TO_DATE( 'October 05, 2017', 'MONTH DD, YYYY')); 


INSERT INTO my_events
                (event_name,
                 location,
                 start_date,
                 end_date)
    VALUES     ( 'TechEd US',
            'Las Vegas, NV, USA'
                DATE '2017-09-25',
                DATE '2017-09-29' );

結果:

SELECT
  *
FROM
  my_events;  

 

 

 我們可以看到都成功插入了

基本的DATE格式化元素介紹:

YYYY 四位數據的年 
YYY 年的后三位
YY  年的后兩位
Y  年的最后以為

MM 月份(01-12)

DDD 年中的天(1-366)
DD 月中的天(1-31)
D 星期中的天(1-7)

HH 一天中的小時(1-12)
HH12 一天中的小時(1-12)
HH24 一天中的小時(0-23)24小時制

MI 分鍾(0-59)

SS 秒(0-59)



 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM