值没有在ms访问查询中检索日期时间

时间:2012-02-22 19:15:47

标签: sql ms-access datetime

需要选择开始日期和结束日期之间的给定日期数量

当我使用'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')

tblpriceperiod

1 个答案:

答案 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))
相关问题