1. 程式人生 > 資料庫 >Oracle轉換時間出現的問題:ORA-01810: format code appears twice

Oracle轉換時間出現的問題:ORA-01810: format code appears twice

Java開發中需要使用oralce中的to_date()函式用於將字串轉換為日期物件

insert into event_vpn (card_id,inevent,inip,outevent,outip,workday,ntid) values ('60192',to_date('2020/01/26 15:00:00','yyyy-mm-dd HH:mm:ss'),'1.1.1.1',to_date('2020/01/26 17:00:00',to_date('2020/01/26','yyyy-mm-dd'),'ccheng15')
ORA-01810: format code appears twice

能是像Java那樣指定日期格式,比如:

to_date('2006-06-01 18:00:00' 'yyyy-mm-dd hh:MM:ss')
而在Oracle中的日期格式是不區分大小寫的,所以 mm 出現了兩次。
正確的寫法是:
to_date('2006-06-01 18:00:00' 'yyyy-mm-dd hh:mi:ss')

HH --     Hour of day (1-12).
HH12 -- Hour of day (1-12).
HH24 -- Hour of day (0-23).
MI --  Minute (0-59).
SS -- Second (0-59).

 

 

執行sql時出現以下error:

ORA-01849: hour must be between 1 and 12

這是因為,在ORACLE中,時間格式預設小時為12小時制,如果想執行以上語句,應該將時間格式改成為'yyyy-mm-dd HH24:mi:ss'即可

insert into event_vpn (card_id,'yyyy-mm-dd HH24:mi:ss'),'ccheng15')


這樣執行就OK了