[英]strSQL between date range excel VBA
我正在嘗試在兩個日期范圍之間的 Excel VBA 內運行 strSQL。
請參閱以下與此相關的代碼部分:
Dim DateMin As String
Dim DateMax As String
DateMin = Format$(Sheets("Setup").Range("c5").Value, "mm/dd/yyyy")
DateMax = Format$(Sheets("Setup").Range("c6").Value, "mm/dd/yyyy")
strSQL = "SELECT [COSTCENTRE_CODE],[PROJECT_CODE],[HOME_VALUE],[CT_DEADLINE] FROM [AA_CST_CENTRE_TRANSACTION_SIMPLE_VIEW] where [CT_DEADLINE] between #" & DateMin & "# AND #" & DateMax & "#"
當我運行它時,我得到一個“不正確的語法 nea '#'”錯誤。 單元格 C5 + C6 的格式與 mm/dd/yyyy 格式相同 - 我使用美國日期格式,因為相信 SQL 僅使用美國日期? 我試過調整日期,但沒有運氣。
當我運行“debug.print strsql”時,我得到以下信息:
SELECT [COSTCENTRE_CODE],[PROJECT_CODE],[HOME_VALUE],[CT_DEADLINE] FROM [AA_CST_CENTRE_TRANSACTION_SIMPLE_VIEW] where [CT_DEADLINE] between #02/01/2020# AND #03/31/2020#
我已經嘗試刪除日期周圍的#
並且我不再收到錯誤,但是根本沒有數據顯示 - 這些日期肯定有數據。
任何人都有任何想法,認為這是 SQL 問題而不是 Excel VBA 問題?
運行這個 SQL 有效嗎? SELECT [COSTCENTRE_CODE],[PROJECT_CODE],[HOME_VALUE],[CT_DEADLINE] FROM [AA_CST_CENTRE_TRANSACTION_SIMPLE_VIEW]
只是為了確保問題出在日期部分而不是之前。 如果這沒有運行,那么問題出在這部分而不是日期部分。
而且我相信 SQL 使用YYYY-MM-DD hh:mm:ss.sss
作為日期格式。 檢查您是否已完成第一個建議的測試並且此查詢運行。
據我所知,只有 Access 接受#
但在 SQL-Server 中,您需要使用'
代替(這也適用於 Access)。
另請注意
BETWEEN '02/01/2020' AND '03/31/2020'
實際上是:
BETWEEN '02/01/2020 00:00:00.000' AND '03/31/2020 00:00:00.000'
因此請注意,您錯過了 2020 年 3 月 31 日凌晨 12 點之后發生的任何03/31/2020
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.