Oracle日期和時(shí)間的基本命令詳解
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
: 存儲(chǔ)日期和時(shí)間,精確到秒
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
:存儲(chǔ)年份和月份的時(shí)間間隔
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
:存儲(chǔ)天、小時(shí)、分鐘、秒以及小數(shù)秒的時(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)日期和時(shí)間。SELECT SYSDATE FROM dual;
CURRENT_TIMESTAMP:返回當(dāng)前系統(tǒng)時(shí)間戳:SELECT CURRENT_TIMESTAMP FROM dual;
EXTRACT: 從日期或時(shí)間戳中提取特定的部分(如年、月、日、小時(shí)等)
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: 將日期或時(shí)間戳轉(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ì)算兩個(gè)日期之間的月份數(shù):SELECT MONTHS_BETWEEN(TO_DATE('2024-12-20', 'YYYY-MM-DD'), SYSDATE) AS months_between FROM dual;
NEXT_DAY: 返回指定日期之后的第一個(gè)指定星期幾: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)日期和時(shí)間
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日期和時(shí)間的基本命令的文章就介紹到這了,更多相關(guān)Oracle日期和時(shí)間內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Oracle字符函數(shù)應(yīng)用檢測(cè)漢字的方法
這篇文章主要介紹了Oracle字符函數(shù)應(yīng)用檢測(cè)漢字的方法,需要的朋友可以參考下2017-03-03Oracle使用觸發(fā)器和mysql中使用觸發(fā)器的案例比較
這篇文章主要介紹了Oracle使用觸發(fā)器和mysql中使用觸發(fā)器的案例比較,本文通過(guò)示例講解,給大家介紹的非常詳細(xì),需要的朋友參考下2016-12-12Oracle中基于hint的3種執(zhí)行計(jì)劃控制方法詳細(xì)介紹
這篇文章主要介紹了Oracle中基于hint的3種執(zhí)行計(jì)劃控制方法詳細(xì)介紹,它們分別是OUTLINE(大綱)、SQL PROFILE(概要文件)、SQL BASELINE(基線),文中包含大量實(shí)例,需要的朋友可以參考下2014-07-07Oracle中帶條件插入數(shù)據(jù)的使用方法示例詳解
在Oracle數(shù)據(jù)庫(kù)中,INSERT WHEN語(yǔ)句用于在滿足特定條件時(shí)插入數(shù)據(jù),它允許您根據(jù)條件控制插入操作是否執(zhí)行,本文給大家分享Oracle中帶條件插入數(shù)據(jù)的使用方法,感興趣的朋友一起看看吧2023-12-12oracle中關(guān)于case?when?then的使用
這篇文章主要介紹了oracle中關(guān)于case?when?then的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03Oracle?sysaux表空間異常增長(zhǎng)的完美解決方法
sysaux表空間會(huì)因?yàn)槎喾N情況而增大,下面這篇文章主要給大家介紹了關(guān)于Oracle?sysaux表空間異常增長(zhǎng)的完美解決方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04Oracle刪除數(shù)據(jù)非常慢的問(wèn)題及解決
這篇文章主要介紹了Oracle刪除數(shù)據(jù)非常慢的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02oracle sql語(yǔ)言模糊查詢--通配符like的使用教程詳解
這篇文章主要介紹了oracle sql語(yǔ)言模糊查詢--通配符like的使用教程詳解,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2018-04-04