需要选择开始日期和结束日期之间的给定日期数量
当我使用'2/27/2012'或'2/28/2012'时,它的工作正常我
但是对于'2/29/2012',它没有选择金额
select amount from tblPricePeriod where cdate(2/1/2012) <=cdate('2/29/2012 12:00:00 AM')
and cdate(2/29/2012) >= cdate('2/29/2012 12:00:00 AM')
答案 0 :(得分:2)
我想知道这个查询是否可能接近你想要的。
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))