Oralce中的to_date()函數(shù)用于將字符串轉換為日期對象,具體使用格式為:
to_date( string,  [  format_mask  ] [  nls_language  ]  )

string1

要轉換的字符串.

format_mask 可選項,日期轉換格式.

nls_language 可選項. 指定用于轉換字符串的nls language.

其中 format_mask主要有以下幾種格式:
Format Code Explanation
YEAR Year, spelled out
YYYY 4-digit year
MM Month (01-12; JAN = 01).
MON Abbreviated name of month.
MONTH Name of month, padded with blanks to length of 9 characters.
D Day of week (1-7).
DAY Name of day.
DD Day of month (1-31).
DDD Day of year (1-366).
DY Abbreviated name of day.
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).
SSSSS Seconds past midnight (0-86399).

[問題]

ORA-01810: format code appears twice
可能是像Java那樣指定日期格式,比如:
to_char('2006-06-01 18:00:00' 'yyyy-mm-dd hh:MM:ss')
而在Oracle中的日期格式是不區(qū)分大小寫的,所以 mm 出現(xiàn)了兩次。
正確的寫法是:
to_char('2006-06-01 18:00:00' 'yyyy-mm-dd hh:mi:ss')

ORA-01722: invalid number
可能是指定小時為hh,而hh取值范圍是 1-12,所以如果指定小時為 0 點將出現(xiàn)這個異常,比如:
to_char('2006-06-01 00:00:00' 'yyyy-mm-dd hh:MM:ss')
正確的寫法是:
to_char('2006-06-01 00:00:00' 'yyyy-mm-dd hh24:MM:ss')