Oracle 時間格式化 無效數字
字段名 | 類型 | 備注 |
---|---|---|
flightDate | varchar | 格式:yyyy-mm-dd hh24:mi:ss |
-
查詢語句:
select TO_CHAR(xxx.flightDate,'hh24:mi') from xxx
-
查詢結果:
SELECT TO_CHAR(HANDOVER_TIME,'hh24:mi') FROM "T_DOA_FLIGHT_BIZ" WHERE HANDOVER_TIME IS NOT NULL > ORA-01722: 無效數字 > 時間: 0.026s
-
錯誤分析:
TO_CHAR 函數官方說明
TO_CHAR
(datetime) converts a datetime or interval value ofDATE
,TIMESTAMP
,TIMESTAMP
WITH
TIME
ZONE
, orTIMESTAMP
WITH
LOCAL
TIME``ZONE
datatype to a value ofVARCHAR2
datatype in the format specified by the date formatfmt
.TO_CHAR 函數接收只能接收不接收VARCHAR類型的數據!
-
解決辦法:
使用TO_DATE函數將VARCHAR類型的數據轉為DATETIME類型,然后再使用TO_CHAR。
select TO_CHAR(TO_DATE(xxx.flightDate,'yyyy-mm-dd hh24:mi:ss'),'hh24:mi') from xxx
-
總結
graph TB 日期_varchar --TO_DATE--> 日期_datetime--TO_CHAR-->時間_varchar脫褲子放屁….