Вставьте даты в базу данных Microsoft Access - PullRequest
0 голосов
/ 03 апреля 2019

Как мне написать правильный синтаксис для вставки даты в мою базу данных?

Это команда SQL, которую я уже пробовал:

"insert into table1 (date) values (#"+DateTime.Parse(DateTime.Now.ToShortDateString())+"#)"

А также что:

"insert into table1 (date) values ('"+DateTime.Parse(DateTime.Now.ToShortDateString())+"')"

Ответы [ 2 ]

1 голос
/ 03 апреля 2019

Вы должны использовать правильное строковое выражение для выражения даты или использовать Date ():

"insert into table1 ([date]) values (Date())"

Для других значений даты:

"insert into table1 ([date]) values (#" + someDate.ToString("yyyy'/'MM'/'dd") + "#)"
1 голос
/ 03 апреля 2019

Я был уверен, что смогу найти дубликат этого вопроса в Stackoverflow, но оказалось, что у многих вопросов, которые я нашел относительно C # и формата даты для Access SQL, есть свои специфические странные проблемы, и ни один ответ не был однозначным. НО, технически ответ по-прежнему существует в других вопросах и ответах, если вы просто посмотрите на формат строк в различных примерах кода.

  • Намерение состоит в том, чтобы создать строку SQL . Оба нерабочих примера вызывают метод DateTime.Parse(), который возвращает значение DateTime ..., которое не относится к типу данных String.

  • Данный код проходит полный круг. Метод DateTime.Now возвращает тип DateTime. Но затем метод ToShortDateString() преобразует его в строку. Но тогда функция Parse() преобразует эту строку обратно в дату, по существу отменяя то, что у вас уже есть.


Мораль этой истории? Удалить вызов DataTime.Parse ().

"insert into table1 (date) values (#" + DateTime.Now.ToShortDateString() + "#)"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...