Недопустимый вызов процедуры для DateDiff с драйвером MS Access

Следующий запрос:

SELECT DateDiff('month',0,'2000-01-01 00:00:00');

Возвращает ошибку «[ODBC Microsoft Access Driver] Недопустимый вызов процедуры» со странным кодом 22018.

Характеристики:

  • Версия драйвера Microsoft Access: 4.00.6305.00
  • База данных, созданная с помощью Access 2003

Приведенный выше синтаксис выглядит правильным, так как вызов функции с текущим форматом (без одинарных кавычек для месяца) возвращает «[Microsoft] [Драйвер ODBC Microsoft Access] Слишком мало параметров. Ожидается 1».

Итак, каков правильный синтаксис, если я не понял его правильно? В качестве альтернативы, как мне выполнить datediff с этой версией драйвера?


person MPelletier    schedule 20.01.2011    source источник
comment
Для дальнейшего использования вот хорошая документация со списком допустимых частей даты: techonthenet.com /access/functions/date/datediff.php   -  person MPelletier    schedule 20.01.2011


Ответы (1)


Я не понимаю, как задействован ODBC, но ваш запрос не будет работать в чистом контексте Access, потому что DateDiff требует «m» в качестве аргумента интервала для месяца.

В Access 2003 этот запрос возвращает 1201:

SELECT DateDiff('m',0,'2000-01-01 00:00:00');
person HansUp    schedule 20.01.2011