Psycopg2 конвертирует строку даты в предыдущий день - PullRequest
1 голос
/ 20 марта 2019

Я использую psycopg2 для вставки некоторых данных в базу данных PostgreSQL.

Что я делаю:

import psycopg2
conn = psycopg2.connect(host="127.0.0.1", port='5432', database="mydatabase", user="root", password="root")
cursor = conn.cursor()

# MY-SQL-FILE has a bunch of INSERT statements, such as:
# INSERT INTO mytable (mydate) values ('1991-18-03');

cursor.execute(open("/MY-SQL-FILE.sql").read())
conn.commit()
conn.close()

Что я получаю в результате

Выполнение вышеуказанного сценария создаст в моей базе данных строку с датой: 1991-03-17 21:00:00

Obs: тип поля mydate равен timestamptz

То, что я ожидал

Я ожидал получить строку с датой 1991-03-18 00:00:00

Забавно, если я попытаюсь выполнить тот же оператор вставки в DBeaver, я получу 1991-03-18 00:00:00

Что яхочу знать

Почему это происходит?(это, скорее всего, будет работать, если я преобразую дату из строки в дату и время)

Но я хочу знать, почему это происходит, откуда берется этот 21:00:00, если это проблема БД TZя думаю, что время не будет одинаковым каждый раз ...

...