一、TO_CHAR函數
Oracle中的TO_CHAR函數可以將日期類型轉換為字元類型,其語法如下:
TO_CHAR(date, format, 'nlsparam')
其中,date
為日期類型,format
為輸出格式,’nlsparam’為國家/地區特定語言環境下的參數。
例如,將當前日期轉換為年-月-日的格式:
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD') FROM DUAL;
或者將當前日期轉換為中文形式:
SELECT TO_CHAR(SYSDATE, 'YYYY"年"MM"月"DD"日"') FROM DUAL;
當然,TO_CHAR函數還可以將時間類型轉換為字元類型,例如將當前時間轉換為24小時制的格式:
SELECT TO_CHAR(SYSDATE, 'HH24:MI:SS') FROM DUAL;
二、TO_DATE函數
與TO_CHAR函數相反,TO_DATE函數可以將字元類型轉換為日期類型,其語法如下:
TO_DATE(char, format, 'nlsparam')
其中,char
為字元類型,format
為輸入格式,’nlsparam’為國家/地區特定語言環境下的參數。
例如,將一個字元串轉換為日期類型:
SELECT TO_DATE('2022-01-01', 'YYYY-MM-DD') FROM DUAL;
或者將一個包含中文的字元串轉換為日期類型:
SELECT TO_DATE('2022年01月01日', 'YYYY"年"MM"月"DD"日"') FROM DUAL;
三、INTERVAL DAY TO SECOND
Oracle中的INTERVAL DAY TO SECOND類型可以用來表示一段時間間隔,其格式為:
INTERVAL 'days' DAY (2) TO SECOND (6)
其中,'days'
是一段時間間隔,DAY (2)
表示單位為天,SECOND (6)
表示精度為6位小數的秒數。
例如,表示一個時間間隔為3天2小時30分鐘15.123456秒的值:
INTERVAL '3 02:30:15.123456' DAY (2) TO SECOND (6)
四、時間轉換實例
下面是一個將字元串類型日期轉換為另一種格式的示例:
WITH
SAMPLE_DATA AS
(
SELECT '2022-01-01 12:34:56' AS DATE_STR FROM DUAL
)
SELECT
DATE_STR,
TO_CHAR(TO_DATE(DATE_STR, 'YYYY-MM-DD HH24:MI:SS'), 'MM/DD/YYYY HH12:MI:SS AM') AS NEW_DATE_STR
FROM
SAMPLE_DATA;
執行結果為:
+---------------------+-----------------------+
| DATE_STR | NEW_DATE_STR |
+---------------------+-----------------------+
| 2022-01-01 12:34:56 | 01/01/2022 12:34:56 PM |
+---------------------+-----------------------+
五、總結
Oracle中提供了多種時間轉換函數,其中TO_CHAR函數用來將日期/時間類型轉換為字元類型,TO_DATE函數用來將字元類型轉換為日期類型,INTERVAL DAY TO SECOND類型用來表示一段時間間隔。在實際應用中,需要根據具體的業務需求和數據類型進行選擇和使用。
原創文章,作者:CAPOQ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/360343.html