Oralce中的to_date()函數(shù)用于將字符串轉(zhuǎn)換為日期對(duì)象,具體使用格式為:
to_date(?string,?
[
?format_mask?
]
,?
[
?nls_language?
]
?)
string1
要轉(zhuǎn)換的字符串.
format_mask
可選項(xiàng),日期轉(zhuǎn)換格式.
nls_language
可選項(xiàng). 指定用于轉(zhuǎn)換字符串的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).
|
[問(wèn)題]
ORA-01810: format code appears twice
可能是像Java那樣指定日期格式,比如:
to_char('2006-06-01 18:00:00' 'yyyy-mm-dd hh:MM:ss')
而在Oracle中的日期格式是不區(qū)分大小寫(xiě)的,所以 mm 出現(xiàn)了兩次。
正確的寫(xiě)法是:
to_char('2006-06-01 18:00:00' 'yyyy-mm-dd hh:mi:ss')
ORA-01722: invalid number
可能是指定小時(shí)為hh,而hh取值范圍是 1-12,所以如果指定小時(shí)為 0 點(diǎn)將出現(xiàn)這個(gè)異常,比如:
to_char('2006-06-01 00:00:00' 'yyyy-mm-dd hh:MM:ss')
正確的寫(xiě)法是:
to_char('2006-06-01 00:00:00' 'yyyy-mm-dd hh24:MM:ss')