簡體   English   中英

MS Access SQL-比較一般日期和短日期

[英]MS Access SQL - Compare General Date to Short Date

我需要比較2種不同的日期類型( 一般日期短日期 )。

我試圖使用FORMAT()來獲取轉換后的日期,但是您不能在WHERE子句中使用它。

"SELECT DT, Item, N, InvoiceNum, FORMAT(DT, 'Short Date') as DT_SD FROM itemHistory WHERE DT_SD='#" & selectedDate & "#')"

您不能在您的位置使用Alias,因為您的選擇中使用了別名。 除非您包裝到子查詢

原因:

其中:評估條件,並刪除不匹配的行

因此,您的where語句將您的行視為別名,而不是您的行。 如@Rene所述,請使用完整表達式。

"SELECT DT, Item, N, InvoiceNum FROM itemHistory 
WHERE FORMAT(DT, 'Short Date') = #" & selectedDate & "#)"

您應該始終將日期作為日期而不是文本來處理。

對於Access SQL,您將必須使用正確格式的字符串表達式作為日期值:

"SELECT DT, Item, N, InvoiceNum FROM itemHistory WHERE DateDiff('d', DT, #" & Format(selectedDate, "yyyy\/mm\/dd") & "#) = 0"

如果DT從不包含時間值 ,則可以將其減少為:

"SELECT DT, Item, N, InvoiceNum FROM itemHistory WHERE DT = #" & Format(selectedDate, "yyyy\/mm\/dd") & "#"

如果您在字段DT上有索引,它將運行得更快。

暫無
暫無

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

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