2009-04-21 2 views
9

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

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 поле определено как DateTime.

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

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


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

ответ

18

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

(4-значный год, 2-значный месяц, 2-значный день, 2-значный час, 2-значный номер, 2-значный номер) ГГГГ-ММ-ДД ЧЧ: NN: SS

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

или если он по-прежнему терпят неудачу, вы можете использовать # '2009-04-21 14: 25: 53' #

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

Я предлагаю вам использовать YYYY-MM-DD HH: NN: формат SS и попробовать его в одинарные кавычки (') перед использованием # как я сказал выше

+0

FWIW ISO формат даты в одинарные кавычки всегда работает для меня. – onedaywhen

+0

Какой интерфейс базы данных вы используете? ADO/OLEDB? Если это так, это будет правильно. Если вы работаете в Access, это не произойдет, если вы не установили свои параметры для использования ANSI 92 по умолчанию. –

+0

@ Давид: да, обычно я использую ADO/OLEDB, но он работает и для меня в Access Query (возможно, я установил его с помощью ANSI 92 ???) – Dels