Я использую 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я думаю, что время не будет одинаковым каждый раз ...