Piper18914 Ответов: 1

Обновление поля даты и времени в Microsoft access 2003 через odbc


Привет,
Я обновляю запись в Micro-Soft Access-2003. (Да, 2003 год.....)
При чтении записи дата-время будет "2019-07-31T00:00:00.000".

При выполнении запроса к таблице я могу искать дату и время, используя дату jullian, дробная часть которой является временем суток и прекрасно работает в этом новом приложении и другом, которое работает уже год, но не делает обновления.

Ошибка такова: синтаксическая ошибка при обновлении.

Используя инструмент для подключения с помощью odbc к базе данных, я обнаружил, что ошибка возникает в поле dateTime.

scans1 обновление установить
дата = '2019-07-31T00:00:00.000'
где id = 21570


(Обновление доступа не является опцией, так как многие используемые функции больше не доступны. Были отвергнуты и другие варианты.)

Что я уже пробовал:

Вещи, которые я пробовал:
брекетинг даты и времени #: '#2019-07-31T00:00:00.000#'
используя только дату, С и без #'s '07/31/2019' используя / и -
Дата и время '31.07.2019 12:00 утра' и с -
Ставим год-месяц-день
Преобразование даты в Юлиан и Юлиан со смещением 12/31/1899
Различные форматы дат.

Как только код вышел из строя, мне нужно было отследить ошибку. Для этого я использовал инструмент, который позволяет выполнять команды sql через интерфейс. (Это пример программы, входящей в состав QT, sqlbrowser.) Я могу подключаться и выполнять запросы, вставки, обновления и т. д. Я могу обновить столбец, не относящийся к dateTime, но получаю синтаксические ошибки при обновлении столбцов datetime.

Обновления, которые я пробовал, включают в себя:
обновление scans1 set date = '2019-07-31T00:00:00.000' где id = 21570
update scans1 set date = '7/31/2019' where id = 21570
update scans1 set date = 2415319.25 where id = 21570
update scans1 set date = 43708.5 where id = 21570

Когда я обновлял этот вопрос с помощью кода, я увидел проблему.
Имя столбца с датой. (Почему это так, я не знаю. Это устаревшее приложение.)

Это можно закрыть. Спасибо.

Dave Kreskowiak

Не видя кода, который генерирует инструкцию UPDATE, невозможно сказать вам, что происходит не так.

Patrice T

Опубликуйте обновление как решение и примите его, это закроет вопрос.

1 Ответов

Рейтинг:
6

CHill60

Пара вещей из другого типа поддержки устаревших приложений

Вы все еще можете использовать столбец "дата", просто окружите его квадратными скобками. Т.е.

update scans1 set [date] = '2019-07-31T00:00:00.000' where id = 21570
Я все еще получал ошибку, пока не изменил ее на
update scans1 set [date] = CDate('2019-07-31') where id = 21570


ZurdoDev

Насколько я помню, Access хочет #'s вокруг своих дат.

Я думаю

обновление scans1 set [date] = '#2019-07-31T00:00:00.000#' где id = 21570

это тоже сработало бы.