SQL> ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
會話已更改。
SQL> SELECT TO_DATE('2006-05-01 19:25:34', 'YYYY-MM-DD HH24:MI:SS') FROM DUAL;
TO_DATE('2006-05-01
-------------------
2006-05-01 19:25:34
SQL> SELECT TO_DATE('2006-05-01 19:25', 'YYYY-MM-DD HH24:MI') FROM DUAL;
TO_DATE('2006-05-01
-------------------
2006-05-01 19:25:00
SQL> SELECT TO_DATE('2006-05-01 19', 'YYYY-MM-DD HH24') FROM DUAL;
TO_DATE('2006-05-01
-------------------
2006-05-01 19:00:00
SQL> SELECT TO_DATE('2006-05-01', 'YYYY-MM-DD') FROM DUAL;
TO_DATE('2006-05-01
-------------------
2006-5-1
SQL> SELECT TO_DATE('2006-05', 'YYYY-MM') FROM DUAL;
TO_DATE('2006-05','
-------------------
2006-5-1
SQL> SELECT TO_DATE('2006', 'YYYY') FROM DUAL;
TO_DATE('2006','YYY
-------------------
2006-1-1
當省略HH、MI和SS對應的輸入?yún)?shù)時,Oracle使用0作為DEFAULT值。如果輸入的日期數(shù)據(jù)忽略時間部分,Oracle會將時、分、秒部分都置為0,也就是說會取整到日。
同樣,忽略了DD參數(shù),Oracle會采用1作為日的默認值,也就是說會取整到月。
但是,不要被這種“慣性”所迷惑,如果忽略MM參數(shù),Oracle并不會取整到年,取整到當前月。
注意:1.在使用Oracle的to_date函數(shù)來做日期轉(zhuǎn)換時,可能會直覺地采用“yyyy-MM-dd HH:mm:ss”的格式作為格式進行轉(zhuǎn)換,但是在Oracle中會引起錯誤:“ORA 01810 格式代碼出現(xiàn)兩次”。如:select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mm:ss') from dual;
原因是SQL中不區(qū)分大小寫,MM和mm被認為是相同的格式代碼,所以Oracle的SQL采用了mi代替分鐘。select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual;
2.另要以24小時的形式顯示出來要用HH24
select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;//mi是分鐘
select to_char(sysdate,'yyyy-MM-dd HH24:mm:ss') from dual;//mm會顯示月份