不知這個查詢可能會接近你想。
PARAMETERS WhichDate DateTime;
SELECT amount
FROM tblPricePeriod
WHERE
[WhichDate] >= StartDate
AND [WhichDate] <= EndDate;
如果你不想做它作爲一個參數查詢,而是創建一個文本日期值的查詢,而不是,嘗試像這樣...
SELECT amount
FROM tblPricePeriod
WHERE
#2012-02-29# >= StartDate
AND #2012-02-29# <= EndDate;
另一種選擇是在WHERE子句中使用BETWEEN表達式。
SELECT amount
FROM tblPricePeriod
WHERE #2012-02-29# BETWEEN StartDate AND EndDate;
這些建議假設StartDate和EndDate都是日期/時間數據類型。如果它們是文本數據類型,則可以使用該CDate()函數在查詢中使用它們的日期等效項。
CDate(StartDate)
CDate(EndDate)
此外,如果您的StartDate和EndDate值包含午夜以外的時間組件,情況會更加複雜。但是,您可以使用DateValue()函數在相同日期將這些日期/時間值轉換爲午夜。
DateValue(StartDate)
DateValue(EndDate)
或
DateValue(CDate(StartDate))
DateValue(CDate(EndDate))
那是*正是*你有什麼? 'cdate(2/1/2012)'是將'2/1/2012'分割成一個給出'00:01:26'的日期(因爲沒有引號),但這會導致FALSE任何候選日期..也可以使用'#2/29/2012 12:00:00 AM#'而不是'cdate('2/29/2012 12:00:00 AM')' – 2012-02-22 19:27:44
有沒有在那個SQL語句中,列引用是cdate是一個轉換函數,但是你已經針對一個類型化的值運行它,而不是表中的字段,這個查詢並不意味着什麼,你能否澄清這個問題? – 2012-02-23 09:38:24