Ответ 1
В тех случаях, когда в предложениях используется
columnName = #mm/dd/yyyy#
Как я могу получить запись на основе свойства Date? Я пытаюсь:
WHERE Meetings.[MDate] = '16/12/2011'
который я использую, но получаю:
"Несоответствие типов данных в выражении критериев"
Решение проблемы: должно быть:
WHERE Meetings.[MDate] = 16/12/2011
Нет кавычек.
В тех случаях, когда в предложениях используется
columnName = #mm/dd/yyyy#
Вы хотите использовать формат даты SQL: '# 2011-12-16 #'
Используйте функцию cast to DATETIME
, CDATE()
, которая будет соблюдать региональные настройки машины. Тем не менее, по-прежнему неплохо использовать однозначный формат даты, а формат ISO 8601 является хорошим.
Также обратите внимание, что Access не имеет типа данных даты: его единственный тип временных данных DATETIME
и, как следует из его названия, всегда имеет элемент времени с точностью до одной второй гранулы времени, даже если это время происходит с быть полночь. Поэтому рекомендуется всегда включать значение времени в гранулу во второй раз во всех литералах DATETIME
, например.
WHERE Meetings.MDate = CDATE('2011-12-16 00:00:00');
Еще одно преимущество вышеизложенного заключается в том, что пользовательский интерфейс доступа не будет пытаться переформатировать литерал DATETIME
, потому что он удерживается как строка.