關於ADO+SQL /Access裏面查詢日期時間類型語句的一點總結

問題: 用ADO來連接數據庫,查詢符合某個時間段的記錄

        例如查詢2009-1-1 0:00:00 到2009-6-10 0:00:00之間的紀錄

 

        一般的sql語句會這樣寫

        select * from [table] where 日期 >='2009-1-1 0:00:00 ' and 日期<='2009-6-10 0:00:00'
       
        從結果來看,一般情況下會出現查詢結果與期望值大相徑庭的後果。

        原因就在於日期時間的格式 和 sql語句針對不同數據庫的不同寫法

        在數據庫查詢裏  用''1/1/2009 '    mm/dd/yyyy

       
        asp+access 一般這樣寫sql

        select * from [table] where 日期 >=#2009-1-1 0:00:00# and 日期<=#2009-6-10 0:00:00#  (ADO+access好象必須加#)

        
         MFC+SQL要對日期時間做轉化

         CONVERT(DATETIME, '%s', 101)

         TimeStr_K = "2009-1-1 0:00:00";
         TimeStr_J =  "2009-6-10  0:00:00";
         SearchStr.Format(" select * from [table] where 日期>= CONVERT(DATETIME, '%s', 101) AND 日期<= CONVERT(DATETIME, '%s', 101)", TimeStr_K, TimeStr_J);

        

         原因還是不太明確,不過這些我已經測試過
   

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章