資料庫查詢關於日期的格式問題

2022-01-20 13:41:14 字數 819 閱讀 6657

在本地測試每行計算都沒有問題,但是放到伺服器的時候,合計出現問題了。糾結了二十分鐘知道錯誤了,原來是日期格式有問題

本地測試結果:

伺服器測試結果:

很糾結的,怎麼合計沒有出來,因為這個統計報表不是我做的,甚至我都不清楚涉及到的表結構。只是把同事之前做的拿過來進行修改。

所有方法都是呼叫同事寫好的。在統計的時候我去用了乙個迴圈呼叫(效能肯定不好,但是我不清楚表結構,所以不去自己寫sql查詢了)。但是結果在本地一直沒有問題。扔到伺服器就出問題了,所有合計都是0.排查了半個小時,找到原因。原來是時間格式的問題。同事這邊時間格式直接是乙個string型別。我就直接把時間toshortdatestring()。然後本地沒有出現任何問題。

可能原因就是本地在vs中進行除錯。vs會自動轉換時間格式的,至於伺服器格式是固定的,所以導致傳入到資料庫中查詢的sql語句日期格式出現問題,然後沒有出現正確結果。

解決辦法,把同事寫的查詢方法的時間引數由string型別修改為datetime型別。然後自己在該方法內對時間合適進行轉換,這樣不必每次呼叫該方法都必須對時間格式進行轉換。並且還可能出現時間格式「yyyy-mm-dd」  "yyyy/mm/dd" 等string型別問題統一為datetime格式。

結論,以後寫方法的時候能夠使用最原始的資料格式就用最原始的格式,不要讓呼叫該方法的人來轉換資料格式。如果必須由呼叫者來轉換引數格式,請提前說明引數格式問題

關於資料庫日期格式顯示星期的問題

估計有不少小夥伴遇到日期格式顯示星期的問題,我今天就遇到了,頭疼了一中午終於解決了,現分享如下 1 修改登錄檔 在執行視窗裡輸入regedit,以管理員身份執行,找到hkey local machine software oracle key oradb11g home1 nls lang比如修改為...

資料庫日期格式化問題

select date format create time,y m d h i s from tb task info 單位值描述 秒 s s 兩位數字形式的秒 00,01,59 分 i i 兩位數字形式的分 00,01,59 小時 h 24小時制,兩位數形式小時 00,01,23 小時 h 12...

資料庫日期查詢

有表a,日期字段,週期字段 週期欄位為一年,兩年,三年 現要查詢 當前時間是否大於 日期字段 oracle 中執行sql 語句如下 ds cycle 週期字段,為字典值,配置項,值為月份 一年12個月 select from t relay protection t where add months...