Отметка времени не имеет «формат».
Рекомендуемый способ работы с метками времени - использовать PreparedStatement, в котором вы просто передаете заполнитель в SQL и передаете «реальный» объект через API вашего языка программирования.Поскольку я не знаю Python, я не знаю, поддерживает ли он PreparedStatements и каков будет его синтаксис.
Если вы хотите поместить литерал временной метки в ваш сгенерированный SQL, вам нужно будет следоватьнекоторые правила форматирования при указании значения (у литерала есть формат).
Метод Ивана будет работать, хотя я не уверен на 100%, зависит ли это от конфигурации сервера PostgreSQL.
Независимое от конфигурации (и языка) решение для указания литерала метки времени:стандарт ANSI SQL:
INSERT INTO some_table
(ts_column)
VALUES
(TIMESTAMP '2011-05-16 15:36:38');
Да, это ключевое слово TIMESTAMP
, за которым следует метка времени, отформатированная в стиле ISO (ключевое слово TIMESTAMP
определяет этот формат)
Другое решение будетиспользовать функцию to_timestamp()
, где вы можете указать формат входного литерала.
INSERT INTO some_table
(ts_column)
VALUES
(to_timestamp('16-05-2011 15:36:38', 'dd-mm-yyyy hh24:mi:ss'));