簡體   English   中英

如何在SQL查詢中格式化日期?

[英]How to format date in a SQL query?

您好我在VBA上使用MS JET OLEDB 4.0(MS ACCESS)

SQL = "SELECT COUNT(Date) FROM [Orders] WHERE [Orders].[Date] BETWEEN " & "#" & StartDate & "#" & " AND " & "#" & EndDate & "#"

[日期]的格式類似於f dd / mm / yyyy(法語),而StartDate和EndDate的格式類似於mm / dd / yyyy(兩個日期對象)。

我的信念是BETWEEN僅比較格式為mm / dd / yyyy的日期,所以有沒有一種方法可以將[日期]格式轉換為mm / dd / yyyy,以便函數之間可以正確比較?

編輯:使用字符串代替日期,如下所示:

StartDateFormatted = Format(StartDate,"dd/mm/yyyy")
EndDateFormatted = Format(EndDate,"dd/mm/yyyy")

以確保開始日期和結束日期格式。 它仍然無法正常工作。

我要承擔兩件事:

  • BETWEEN只比較mm / dd / yyyy格式

  • 我必須使用一個函數將[日期]格式化為mm / dd / yyyy

感謝@Maciej Los回答了我的問題。

始終使用ISO日期格式YYYY-MM-DD,您將不會有任何問題。 不格式化。

使用格式化功能

SQL = "SELECT COUNT(Date)" & vbcr & _
"FROM [Orders]" & vbcr & _
"WHERE [Orders].[Date] BETWEEN #Format(" & StartDate & "], 'MM/dd/yyyy')# AND #Format(" & EndDate & ",'MM/dd/yyyy')#"

我從查詢的SQL編譯中注意到,在使用之間時,它將其轉換為MM / DD / YYYY,並且直到我使用Format(startdate,“ mm / dd / yyyy”)才起作用。 請檢查快照商店。

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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