在oracle中格式化DATE
我有一个表格中的date字段,其中包含dd-MMM-yy格式的date。
我想创build一个函数,获取这个date检查它不为null,然后将其更改为yyyy / mm / dd格式
但问题是,甲骨文不接受dd-MMM-yy合成date作为input参数,它说:请使用yyyy-MM-dddate格式!
我怎么能先把dd-MMM-yy formate换成yyyy-MM-dd,所以oracle接受它作为input,然后把它改成yyyy / mm / dd
:请使用yyyy-MM-dddate格式!
这与Oracle错误无关。
我有一个表格中的date字段,其中包含dd-MMM-yy格式的date。
不,你感到困惑。 Oracle不会按照您看到的格式存储date。 它将内部存储在7个字节中 ,每个字节存储不同的date时间值。
Byte Description ---- ------------------------------------------------- 1 Century value but before storing it add 100 to it 2 Year and 100 is added to it before storing 3 Month 4 Day of the month 5 Hours but add 1 before storing it 6 Minutes but add 1 before storing it 7 Seconds but add 1 before storing it
如果要显示,请使用适当的FORMAT MODEL的 TO_CHAR 。
在插入时,使用适当的FORMAT MODEL的 TO_DATE 。
默认情况下,您看到的格式是特定于语言环境的NLS设置 。
SQL> select parameter, value from v$nls_parameters where parameter='NLS_DATE_FORMAT'; PARAMETER VALUE --------------- ---------------------------------------------------------------- NLS_DATE_FORMAT DD-MON-RR SQL> select sysdate from dual; SYSDATE --------- 03-FEB-15 SQL> select to_char(sysdate, 'mm/dd/yyyy hh24:mi:ss') from dual; TO_CHAR(SYSDATE,'MM ------------------- 02/03/2015 17:59:42 SQL>
更新关于MMM格式。
如果您的月份名称最多为三个字符,则使用MMM,然后使用MON 。