Oracle日期格式化問題:to_date(sysdate,'yyyy-MM-dd')與 to_date(to_char(sysdate,'yyyy-MM-dd'),'yyyy-MM-dd')區別


 

 

1.需求描述

  對系統日期進行格式化,並仍保持日期類型

 

2.錯誤方法

  直接使用to_date()實現

SELECT TO_DATE(SYSDATE,'YYYY-MM-DD') FROM DUAL;

  這樣查出來的結果不對

  錯誤原因:to_date()函數是類型轉換,不是格式轉換,字符串和后面的格式要匹配;格式轉換使用to_char()。


to_date(sysdate,'yyyy-MM-dd')與to_date(to_char(sysdate,'yyyy-MM-dd'),'yyyy-MM-dd')區別
下面我們來看一下,to_date和to_char的問題:

select to_date(sysdate,'yyyy-MM-dd'),to_date(to_char(sysdate,'yyyy-MM-dd'),'yyyy-MM-dd') from dual;


 

 


注:不同的客戶端處理可能不一致:有些能查出日期(日期不正確),有些直接報錯

 

 

3.正確方法

SELECT TO_DATE(TO_CHAR(SYSDATE,'YYYY-MM-DD'),'YYYY-MM-DD') FROM DUAL;

  先將系統時間使用to_char()格式化成yyyy-mm-dd格式的字符串,然后使用to_date()轉換成yyyy-mm-dd格式的日期類型


 

 



————————————————
參考:https://blog.csdn.net/baidu_37107022/article/details/78450564?utm_source=blogxgwz2

https://docs.oracle.com/cd/E11882_01/server.112/e41084/functions203.htm#SQLRF06132

http://www.aiphere.com/oracle-mon-date-trans.html


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM