Вставьте команду SQL с датой и временем в MS-Access - PullRequest
11 голосов
/ 21 апреля 2009

Я пытаюсь выполнить следующий запрос в MS-Access 2007, но он не выполняется в поле времени.

INSERT INTO LOG (
    EMPLOYEECODE, STATUSID, LOCATIONID, TIME, DURATION,
    SHIFTID, LATECOMING, EARLYGOING, LOGDATE, STATIONID
)
VALUES (
    1, 1, 0, '4/21/2009 2:25:53 PM', 0, 
    8, 0, 1, '1/1/2009', 1
)

Поле TIME определяется как дата и время.

Без поля TIME запрос работает нормально!

Я пробовал несколько разных вещей, таких как заключение даты и времени в хэши, кавычки и т. Д. Однако запрос по-прежнему не выполняется в поле времени.


Спасибо, ребята! Это почти полностью помогло мне. Я все еще продолжал получать синтаксическую ошибку для оператора вставки, но затем, продолжая поиск в Google, я понял, что TIME может быть зарезервированным ключевым словом, поэтому поместив его в квадратные скобки, как работает [TIME]!

1 Ответ

21 голосов
/ 21 апреля 2009

Ввод даты и времени в доступе использует # , так как доступ не может автоматически преобразовывать символ / текст в дату или время в SQL-запросе (или в запросе доступа к вызову), и вам лучше использовать международный стандарт для ввода даты и времени, который был ГГГГ-ММ-ДД ЧЧ: NN: СС (4-значный год, 2-значный месяц, 2-значный день, 2-значный час, 2-значная минута, 2 цифра вторая)

так для 4/21/2009 2:25:53 PM используйте # 2009-04-21 14: 25: 53 #

или, если это не помогло, вы можете использовать # '2009-04-21 14:25:53' #

Редактировать: Выше может работать, если вы включите ANSI 92 или используете ADO / OLEDB в качестве интерфейса базы данных, спасибо Дэвиду за указание

Я предлагаю вам использовать формат ГГГГ-ММ-ДД ЧЧ: НН: СС и использовать его в одинарных кавычках (') перед использованием #, как я уже говорил выше

...