2016-12-28 1 views
0

Я пытаюсь выполнить этот запрос, но он возвращает «Переполнение».SQL DateSerial возвращает «overflow»

SELECT tblReadings.DateRead 
FROM tblReadings 
WHERE (((tblReadings.DateRead) Between DateSerial(Date(),Date(),1) And DateSerial(Date(),Date()-10,1))); 

Следующее также возвращает «Переполнение».

SELECT tblReadings.DateRead 
FROM tblReadings 
WHERE (((tblReadings.DateRead)=DateSerial(Date(),Date(),1))); 

SELECT tblReadings.DateRead 
FROM tblReadings 
WHERE (((tblReadings.DateRead)=DateSerial(2016,Date(),1))); 

следующее дает только правильный результат (1 декабря 2016):

SELECT tblReadings.DateRead 
FROM tblReadings 
WHERE (((tblReadings.DateRead)=DateSerial(2016,12,1))); 

Я декомпилировали базу данных и получил точно такие же результаты.

+3

Прочитайте, что вы пишете. Что бы вы ожидали 'DateSerial (Date(), Date(), 1)' для создания? что-то вроде 'DateSerial (47865, 47865, 1)', что явно не является допустимой последовательной датой (какой месяц 47865 в году 47865?). Вы хотите извлечь год и месяц из этих дат, а не всю дату. –

ответ

0

Сортировка. Используемый год (Дата(), Месяц (Дата(), 1 и т. Д.

Смежные вопросы