sql語句中的日期格式


最近遇到一個小問題,在這里記錄一下。

問題描述

有一條查詢語句,大致如下:

1 select * from table where create_date = '2020-04-12' and status = '10' with ur

當使用數據庫工具AQT進行查詢時,可以正確查到數據。但通過遠程SSH連接數據庫進行查詢時,卻怎么都查不到。

原因分析

通過對條件進行分析(實際條件要比上例復雜),定位到大概率是日期格式問題。於是分別在AQT和SSH客戶端執行以下語句:

1 select create_date from table where status = '10' with ur

果然,AQT的數據格式是這樣的  yyyy-MM-dd  ,而在SSH是這樣的  MM/dd/yyyy  。 create_date 是DATE類型的數據列。

通過分析后了解到,常用的數據庫工具一般在處理和展示日期類型的數據時,會自動進行格式轉換,也算是幫用戶封裝具體細節,減少對數據列的細節的了解。

不過在這地方相當於好心辦了壞事。修改查詢語句如下:

1 select * from table where create_date = date('2020-04-12') and status = '10' with ur

通過在sql語句中先轉換成日期格式,避免在不同環境下執行的效果不一樣。

 


免責聲明!

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



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