Oralceto_date()函数用于将字符串转换为日期对象,具体格式为:
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:ssOracle中的日期格式不区分大小写,所以 mm 两次出现。
正确的写作方法是:
to_char('2006-06-01 18:00:00' 'yyyy-mm-dd hh:mi:ss')
ORA-01722: invalid number
可能是指定小时为hh,hh的值范围是 1-12,所以如果指定小时为 0 这种异常会发生在点上,例如:
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')
==============
YY表示两位年数
日期输出带AM/AM/日期输出带PM,
--输入当前的系统日期,格式为 yyyy-mon-dd HH24:MI:SS AM(PM) --增加AM PM --AM在这种格式下 PM没有区别 ,表达的含义是一致的 select to_char(sysdate,'yyyy-mon-dd HH24:MI:SS AM') from dual select to_char(sysdate,'yyyy-mon-dd HH24:MI:SS PM') from dual select to_char(sysdate,'yyyy-mon-dd HH24:MI:SS PM') from dual ===
毫秒表示:
select to_timestamp('16-NOV-11 06.09.57.924000000 PM','DD-MON-YY hh12.mi.ss.ffAM' ) from dual
select to_char(systimestamp, 'DD-MON-YY hh12.mi.ssxff') from dual
select to_char(systimestamp,'yyyy-mm-dd hh24:mi:ssxff') time1, to_char(current_timestamp) time2 from dual
timestamp必须使用