W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
?TIMESTAMP [(scale)] WITH TIME ZONE
? 是 ?TIMASTAMP [(scale)]
? 的變體,與 ?TIMASTAMP [(scale)]
?一樣,它存儲(chǔ)了年、月、日、時(shí)、分和秒等信息,閾值和精確度取決于 ?scale
? 的值。但是與 ?TIMASTAMP [(scale)]
? 不同的是它還可以存儲(chǔ)時(shí)區(qū)信息,所以常用于存儲(chǔ)跨地理區(qū)域的日期時(shí)間信息。
TIMESTAMP [(scale)] WITH TIME ZONE
參數(shù) |
取值范圍 |
說(shuō)明 |
---|---|---|
scale |
0~9 |
TIMESTAMP [(scale)] WITH TIME ZONE 的閾值和精確度取決于 scale 的值,最大值為 9 (納秒,即秒數(shù)精確至小數(shù)點(diǎn) 9 位),最小值為 0(秒,即秒數(shù)精確至小數(shù)點(diǎn) 0 位),默認(rèn)值為 6。 |
?TIMESTAMP WITH TIME ZONE
? 數(shù)據(jù)類型的默認(rèn)輸入輸出格式由 ?NLS_TIMESTAMP_TZ_FORMAT
? 決定,運(yùn)行以下 SQL 語(yǔ)句查看默認(rèn)格式:
SELECT @@NLS_TIMESTAMP_TZ_FORMAT FROM DUAL;
返回結(jié)果:
DD-MON-RR HH.MI.SSXFF AM TZR
如果您需要自定義數(shù)據(jù)的格式,可以使用轉(zhuǎn)換函數(shù)。在插入數(shù)據(jù)時(shí),您可以通過函數(shù) ?TO_TIMESTAMP_TZ (char,fmt)
? 指定數(shù)據(jù)的輸入格式。查詢數(shù)據(jù)時(shí),您可以通過函數(shù) ?TO_CHAR (datetime,fmt)
?指定數(shù)據(jù)的輸出格式。這兩個(gè)轉(zhuǎn)換函數(shù)會(huì)將字符串轉(zhuǎn)化為參數(shù) ?fmt
? 中定義的格式。在 ?fmt
? 未指明的情況下,使用默認(rèn)格式。
?0001-01-01 00:00:00.000000000
? ~ ?9999-12-31 23:59:59.999999999
?
以下示例都使用 ?TO_TIMESTAMP_TZ (char,fmt)
? 輸入時(shí)間戳值。
在插入時(shí)區(qū)時(shí), OceanBase 支持使用時(shí)區(qū)偏移量和時(shí)區(qū)區(qū)域名稱:
執(zhí)行以下語(yǔ)句,使用時(shí)區(qū)偏移量插入數(shù)值:
SELECT TO_TIMESTAMP_TZ('2020-01-01 11:00:00 -05:00','YYYY-MM-DD HH:MI:SS TZH:TZM') FROM DUAL;
返回結(jié)果:
01-JUN-20 11.00.00.000000000 AM AMERICA/LOS_ANGELES
執(zhí)行以下語(yǔ)句,使用時(shí)區(qū)區(qū)域名稱及縮寫插入數(shù)值:
SELECT TO_TIMESTAMP_TZ('2020-01-01 11:00:00 America/Los_Angeles PST','YYYY-MM-DD HH:MI:SS TZR TZD') FROM DUAL;
返回結(jié)果:
01-JUN-20 11.00.00.000000000 AM America/Los_Angeles PST
OceanBase 支持夏令時(shí)且用時(shí)區(qū)縮寫表示夏令時(shí)信息,以 America/Los_Angeles 為例,夏令時(shí) PDT 從每年的 3 月的第二個(gè)星期日到 11 月的第一個(gè)星期日?qǐng)?zhí)行,其余時(shí)間為 PST。當(dāng)插入的值中只包含時(shí)區(qū)區(qū)域名稱時(shí),OceanBase 會(huì)根據(jù)插入的時(shí)間信息判斷當(dāng)前插入的時(shí)區(qū)區(qū)域是否在夏令時(shí)時(shí)段,并在返回的結(jié)果中會(huì)包含時(shí)區(qū)縮寫,以此指明當(dāng)前時(shí)間是夏令時(shí)。
您可以執(zhí)行以下示例代碼:
SELECT TO_TIMESTAMP_TZ('2020-02-01 11:00:00 America/Los_Angeles','YYYY-MM-DD HH:MI:SS TZR') FROM DUAL;
SELECT TO_TIMESTAMP_TZ('2020-06-01 11:00:00 America/Los_Angeles','YYYY-MM-DD HH:MI:SS TZR') FROM DUAL;
返回結(jié)果:
01-JUN-20 11.00.00.000000000 AM America/Los_Angeles PST
01-JUN-20 11.00.00.000000000 AM America/Los_Angeles PDT
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: