簡體   English   中英

日期范圍 excel VBA 之間的 strSQL

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM