Oracle日期和時間的基本命令詳解
1. 基本類型
Oracle支持不同的日期格式模型,其中包括:
- ISO 8601:
YYYY-MM-DDTHH:MI:SS,例如2024-06-20T14:30:00 - Oracle內(nèi)部格式:
DD-MON-YYYY HH:MI:SS AM,例如20-JUN-2024 02:30:00 PM
DATE: 存儲日期和時間,精確到秒
CREATE TABLE test_date (col DATE);
INSERT INTO test_date (col) VALUES (TO_DATE('2024-06-20 12:34:56', 'YYYY-MM-DD HH24:MI:SS'));TIMESTAMP:比DATE類型更精確,可以精確到小數(shù)秒
CREATE TABLE test_timestamp (col TIMESTAMP);
INSERT INTO test_timestamp (col) VALUES (TO_TIMESTAMP('2024-06-20 12:34:56.789', 'YYYY-MM-DD HH24:MI:SS.FF3'));INTERVAL YEAR TO MONTH:存儲年份和月份的時間間隔
CREATE TABLE test_interval_ym (col INTERVAL YEAR TO MONTH); INSERT INTO test_interval_ym (col) VALUES (INTERVAL '2-3' YEAR TO MONTH);
INTERVAL DAY TO SECOND:存儲天、小時、分鐘、秒以及小數(shù)秒的時間間隔
CREATE TABLE test_interval_ds (col INTERVAL DAY TO SECOND); INSERT INTO test_interval_ds (col) VALUES (INTERVAL '5 12:34:56.789' DAY TO SECOND);
2. 常用函數(shù)
SYSDATE:返回當(dāng)前系統(tǒng)日期和時間。SELECT SYSDATE FROM dual;

CURRENT_TIMESTAMP:返回當(dāng)前系統(tǒng)時間戳:SELECT CURRENT_TIMESTAMP FROM dual;

EXTRACT: 從日期或時間戳中提取特定的部分(如年、月、日、小時等)
SELECT EXTRACT(YEAR FROM SYSDATE) AS year FROM dual; # 2024 SELECT EXTRACT(MONTH FROM SYSDATE) AS month FROM dual; # 6 SELECT EXTRACT(DAY FROM SYSDATE) AS day FROM dual; # 20
TO_DATE: 將字符串轉(zhuǎn)換為DATE類型:SELECT TO_DATE('2024-06-20', 'YYYY-MM-DD') FROM dual;

TO_TIMESTAMP: 將字符串轉(zhuǎn)換為TIMESTAMP類型:SELECT TO_TIMESTAMP('2024-06-20 12:34:56.789', 'YYYY-MM-DD HH24:MI:SS.FF3') FROM dual;

TO_CHAR: 將日期或時間戳轉(zhuǎn)換為字符串,可以指定格式:SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') FROM dual;

ADD_MONTHS: 給日期加上指定的月份數(shù):SELECT ADD_MONTHS(SYSDATE, 6) AS new_date FROM dual;

MONTHS_BETWEEN: 計(jì)算兩個日期之間的月份數(shù):SELECT MONTHS_BETWEEN(TO_DATE('2024-12-20', 'YYYY-MM-DD'), SYSDATE) AS months_between FROM dual;

NEXT_DAY: 返回指定日期之后的第一個指定星期幾:SELECT NEXT_DAY(SYSDATE, 'FRIDAY') AS next_friday FROM dual;

LAST_DAY: 返回指定月份的最后一天:SELECT LAST_DAY(SYSDATE) AS last_day_of_month FROM dual;

3. Demo
示例的查詢有如下:
當(dāng)前系統(tǒng)日期和時間
SELECT SYSDATE, CURRENT_TIMESTAMP FROM dual;
將字符串轉(zhuǎn)換為日期并進(jìn)行加減操作
SELECT TO_DATE('2024-06-20', 'YYYY-MM-DD') + 10 AS new_date FROM dual;提取日期的不同部分
SELECT EXTRACT(YEAR FROM SYSDATE) AS year,
EXTRACT(MONTH FROM SYSDATE) AS month,
EXTRACT(DAY FROM SYSDATE) AS day
FROM dual;
到此這篇關(guān)于Oracle日期和時間的基本命令的文章就介紹到這了,更多相關(guān)Oracle日期和時間內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
oracle中行轉(zhuǎn)列LISTAGG()函數(shù)詳解及應(yīng)用實(shí)例
這篇文章主要給大家介紹了關(guān)于oracle中行轉(zhuǎn)列LISTAGG()函數(shù)詳解及應(yīng)用實(shí)例的相關(guān)資料,stagg是oracle11.2增加的特性,功能類似wmsys.wm_concat函數(shù),即將數(shù)據(jù)分組后,把指定列的數(shù)據(jù)通過指定符號合并,需要的朋友可以參考下2024-05-05
oracle中的greatest 函數(shù)和 least函數(shù)示例代碼
這篇文章主要介紹了oracle中的greatest 函數(shù)和 least函數(shù)的實(shí)例代碼,非常不錯,具有一定的參考借鑒價值 ,需要的朋友可以參考下2018-11-11
設(shè)置oralce自動內(nèi)存管理執(zhí)行步驟
設(shè)置內(nèi)存管理首先要啟用oracle自動內(nèi)存管理需要shutdown ,restart,接下來為大家介紹下詳細(xì)的執(zhí)行步驟,感興趣的朋友可以參考下哈2013-04-04
oracle11g客戶端連接12c服務(wù)器ORA-01017錯誤問題解決
這篇文章主要介紹了oracle11g客戶端連接12c服務(wù)器ORA-01017錯誤,本文給大家分享完美解決方法,對oracle 12c錯誤ORA-01017問題解決方法感興趣的朋友跟隨小編一起看看吧2023-06-06
Oracle查詢當(dāng)前的crs/has自啟動狀態(tài)實(shí)例教程
當(dāng)我們開啟或者關(guān)閉自啟動后,我們?nèi)绾尾榭串?dāng)前CRS 是處于enable還是處于disable中呢?下面這篇文章主要給大家介紹了關(guān)于Oracle如何查詢當(dāng)前的crs/has自啟動狀態(tài)的相關(guān)資料,需要的朋友可以參考下2018-11-11
oracle 11g 數(shù)據(jù)庫常用操作實(shí)例總結(jié)
這篇文章主要介紹了oracle 11g 數(shù)據(jù)庫常用操作,結(jié)合實(shí)例形式總結(jié)分析了oracle 11g數(shù)據(jù)庫進(jìn)入、創(chuàng)建、權(quán)限、用戶等相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2023-05-05

