Oracle

從 varchar2 到時間戳的轉換

  • February 24, 2017

在 oracle 表列中,有一varchar2列包含'2017-02-14T18:04:34.988+00:00'我需要將其轉換為時間戳的值。我正在使用TO_TIMESTAMP()轉換,但我無法找出我需要提供什麼日期遮罩。我試過了

sql> select to_timestamp('2017-02-14T18:04:34.988+00:00','YYYY-MM-DD HH24:MI:SS.FF') from dual ;

但它不起作用。

請建議我必須指定什麼日期時間遮罩作為第二個參數。

根據ISO 8601 T是時間指示符。您需要"T"在日期格式遮罩中使用常量。

並且您的時間戳包含時區,因此您需要使用TO_TIMESTAMP_TZ函式來實現這一點。

SQL> select to_timestamp_tz('2017-02-14T18:04:34.988+00:00',' YYYY-MM-DD"T"HH24:MI:SS.FF TZH:TZM') from dual;

TO_TIMESTAMP_TZ('2017-02-14T18:04:34.988+00:00','YYYY-MM-DD"T"HH24:MI:SS.FF
---------------------------------------------------------------------------
14-FEB-17 06.04.34.988000000 PM +00:00

文件:TO_TIMESTAMP_TZ

引用自:https://dba.stackexchange.com/questions/165394