Oracle
從 varchar2 到時間戳的轉換
在 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