2016-08-04 32 views
0

我有一個訪問數據庫,其中每個數據都有兩個不同列中的日期和時間。在VBA中查詢特定日期和時間之間的數據

我需要運行使用VBA在Excel中查詢這將取我兩個特定日期和時間之間的數據(例如:2016年1月5日13:15和2016年3月5日10:11)

我的查詢如下:

SQL = "SELECT * FROM " & database & " WHERE symbol='" & companyName & _ 
     "' AND AdmitDate BETWEEN " & (fromDate + fromTime) & " AND " & (toDate + toTime) & "" 

但是,它給了我一個語法錯誤,它說:

'查詢表達式中缺少運算符'

我無法弄清楚我出錯的地方。

請幫忙!

+0

如果日期和時間分成數據庫中的不同列,您應該運行兩個單獨的'BETWEEN'語句,例如'「AdmitDate BETWEEN」&FromDate&「AND」&toDate&「AND AdmitTime BETWEEN」&FromTime&「AND」&toTime' - 你的日期又是如何存儲在數據庫中的?什麼格式? – Jordan

+0

嗨!我想這不會起作用。例如,如果我需要從01/01/2016 10:00至01/03/2016 13:00的數據。運行兩個單獨的語句只會在給定日期從10:00到13:00提供數據!它不會獲取不在10:00和13:00之間的數據 – Shreyans

回答

1

您需要日期/時間值的正確字符串表達式。格式可以創建這些:

SQL = "SELECT * FROM " & database & " WHERE symbol='" & companyName & "' AND AdmitDate BETWEEN #" & Format(fromDate + fromTime, "yyyy\/mm\/dd hh\:nn\:ss") & "# AND #" & Format(toDate + toTime, "yyyy\/mm\/dd hh\:nn\:ss") & "#" 
+0

不要緊,我的編輯建議我有一些學習做格式化時間。謝謝 –

+0

@JohnWFowler:沒問題。 – Gustav

+1

完美的作品!非常感謝 – Shreyans

相關問題