значение не извлекается в мс запрос доступа с датой и временем - PullRequest
0 голосов
/ 22 февраля 2012

необходимо выбрать сумму заданной даты, которая будет между начальной и конечной датой

это нормально работает для меня, когда я использую '2/27/2012' или '2/28/2012'

, но для '29.02.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 Ответ

2 голосов
/ 22 февраля 2012

Интересно, может ли этот запрос быть близким к тому, что вы хотите.

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;

Другой вариант - использовать выражение BETWEEN в предложении WHERE.

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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...