Oralce中日期格式
?http://www.blogjava.net/zJun/archive/2006/08/14/61808.html
Oralce中的to_date()函數用于將字符串轉換為日期對象,具體使用格式為: to_date(?string,? [ ?format_mask? ] ,? [ ?nls_language? ] ?)string1
要轉換的字符串.format_mask 可選項,日期轉換格式.
nls_language 可選項. 指定用于轉換字符串的nls language.
其中 format_mask主要有以下幾種格式:| 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中的日期格式是不區分大小寫的,所以 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/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
總結
以上是生活随笔為你收集整理的Oralce中日期格式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java日期格式大全 format Si
- 下一篇: Oracle SQL Developer