Запросы в Microsoft Access (SQL, функции работы с датами)

Условие:

почему? Указывает на запятую

Условие: почему? Указывает на запятую

Решение:

Предмет: Базы данных

Раздел: Запросы в Microsoft Access (SQL, функции работы с датами)

Ошибка и её причина

Ошибка в Microsoft Access связана с некорректным выражением в функции DateSerial. В сообщении указано, что:

  • Пропущен оператор или оператор введён неверно
  • Введён недопустимый знак (возможно, запятая)
  • Либо строка задана без кавычек

Разбор ошибки

Выражение:

Between DateSerial(Year(Дата0), Month(Дата0)-1, 1) And DateSerial(Year(Дата0), Month(Дата0), 0)
Потенциальные ошибки:
  1. Запятая вместо точки с запятой

    • В русскоязычной версии Access разделителем аргументов функции DateSerial должна быть точка с запятой (;), а не запятая (,).
  2. Ошибка в DateSerial(Year(Дата0), Month(Дата0), 0)

    • DateSerial(Year(Дата0), Month(Дата0), 0) пытается создать дату с "нулевым" днём, что в Access означает "последний день предыдущего месяца". Это корректный трюк, но может вызывать ошибки, если Дата0 имеет некорректное значение.

Исправленный вариант

Попробуйте заменить запятые на точки с запятой:

Between DateSerial(Year([Дата0]); Month([Дата0])-1; 1) And DateSerial(Year([Дата0]); Month([Дата0]); 0)

Если ваша версия Access использует запятые, оставьте их, но убедитесь, что Дата0 корректно определена.

Вывод

Ошибка связана с разделителями аргументов в DateSerial. В русскоязычной версии Access используйте точки с запятой (;) вместо запятых.

Не нашли нужного вам решения? Оставьте заявку и наши авторы быстро и качественно помогут вам с решением.
Оставить заявку
Работа вам нужна срочно. Не волнуйтесь, уложимся!
  • 22423 авторов готовы помочь тебе.
  • 2402 онлайн