2011-12-15 4 views
10

Как получить запись на основе свойства Date? Я пытаюсь:Доступ к формату даты SQL

WHERE Meetings.[MDate] = '16/12/2011' 

который формат я использую, но я получаю:

"Несоответствие типов данных в выражении критериев"


Проблема решена: он должен были:

WHERE Meetings.[MDate] = 16/12/2011 

Нет кавычек.

+1

Какой инструмент задействован? MSACCESS? – wallyk

+1

Остерегайтесь настроек LCID. Он варьируется от сервера к серверу и может изменить способ доступа к датам. Например, здесь, в Бразилии, мы используем '' dd/mm/yyyy'' для установки значений и '# mm/dd/yyyy #' для выбора в where clauses. Псих? Нет, просто вещи MS. – rcdmk

ответ

10

Вы хотите использовать формат даты SQL: '# 2011-12-16 #'

13

Для где положения используют

columnName = #mm/dd/yyyy# 
4

использовать приведение к DATETIME функции, CDATE(), который будет соблюдайте региональные настройки машины. Тем не менее, по-прежнему неплохо использовать однозначный формат даты, а формат ISO 8601 является хорошим.

Также обратите внимание, что доступ не имеет типа данных Даты: его единственный временный тип данных DATETIME и, как предполагает его название, всегда имеет элемент время с точностью до одной секунды гранулы, даже если это время происходит быть полночь. Поэтому рекомендуется всегда включать значение времени в гранулу во второй раз во всех литералах DATETIME, например.

WHERE Meetings.MDate = CDATE('2011-12-16 00:00:00'); 

Еще одно преимущество выше является то, что Access UI не будет пытаться переформатировать DATETIME буквальным, так как он проводится в виде строки.

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