вставка даты и времени в базу данных - PullRequest
1 голос
/ 19 мая 2019

Может кто-нибудь объяснить, как вставить datetime в базу данных SQLite с помощью python?какой тип данных должен быть datetime, я пробовал много разных способов

мои сомнения основаны на наборе проблем 7 в cs50, мы используем флешку в качестве веб-фреймворка

history - это имябаза данных transaction это имя поля

db.execute("INSERT INTO history (transaction) VALUES(:d)",
             d=datetime.datetime.today())

сообщение об ошибке, я получаю это сообщение при запуске приложения

builtins.RuntimeError
RuntimeError: near "transaction": syntax error [SQL: "INSERT INTO history (transaction) VALUES('2019-05-19 17:14:25')"] (Background on this error at: http://sqlalche.me/e/e3q8)

1 Ответ

0 голосов
/ 19 мая 2019

transaction - это зарезервированное слово в SQLite.

sqlite> INSERT INTO history (transaction) VALUES('2019-05-19 17:14:25');
Error: near "transaction": syntax error

Чтобы устранить неоднозначность зарезервированных слов, они должны быть специально заключены в кавычки.В данном случае в качестве идентификатора с двойными кавычками.

sqlite> INSERT INTO history ("transaction") VALUES('2019-05-19 17:14:25');

Вместо того, чтобы постоянно помнить о кавычках transaction, я бы рекомендовал переименовать столбец;created_at очень часто используется для отметки времени строки.Я бы также рекомендовал использовать ORM, а не писать SQL вручную ;он будет обрабатывать все цитаты для вас, и имеет множество других преимуществ.

...