問題: 用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);
原因還是不太明確,不過這些我已經測試過