2014年7月12日 星期六

mssql datetime 查询 (mssql 2008 r2 bug)

相關參考:[SQL SERVER][Memo]搜尋datetime類型欄位三兩事
--
今天MSSQL DB 發生一件怪事 !
竟然查 datetime 欄位,竟查不到資料....真不敢相信,以前一直這樣使用!
例:
select * from abc where gdate='2014/7/12'

gdate type datetime

(上例)以前這樣查,均可正常顯示資料出來! 但現在竟查不出來
納悶.......不相信,我使用另一個資料庫;使用上面的查法,能查出來啊...(天啊)
why ...到底是發生什麼事!  A 資料庫查不出日期 , B 資料庫卻查出日期
---
只好當這問題是 MSSQL 2008 R2 Express 的 bug...

解決方式:
MSSQL 服務重新啟動後 , 即可正常!!  (真是天大的bug..用這麼多年,這一次發生)

2 則留言:

  1. 寫作BUG
    select * from abc
    where gdate = CAST('2014/7/12' as datetime)
    因為欄位型態為 datetime
    而你的where是字串型態建議轉型
    比較建議較佳的寫作習慣就是
    select * from abc
    where gdate = CAST('2014-07-12' as datetime)
    減少利用程式系統協助判斷而產生的錯誤
    給予明確詳細減少錯誤問題產生喔~小小推薦參考參考

    回覆刪除
    回覆
    1. 恩恩!! 感恩 !
      正規性也是須要考量 !
      我主要提的乃是 mssql database 當下的 bug 問題!
      datatime -- mssql 6.5 即如此支援,不曾不能用過或錯誤!

      刪除