2

我有一个简单的脚本,它将时间戳传递到 Postgres 数据库中。我正在使用 Postico 查看数据库。

我正在尝试传入一个 UTC 值,我的意思是我希望数据库将所有值存储在 +00 时区。我正在使用timestamptz数据库中的条目。

在写入数据库之前,我正在打印正在写入的值。Python 控制台返回:

2018-11-21 10:03:06+00:00

但是当我在 Postico 上查看它时,我得到:

2018-11-21 11:03:06+01.

为什么 Positco 返回的内容与正在编写的内容不同?代码如下:

import time

import psycopg2

import datetime


def write_to_db(entry):
    conn = psycopg2.connect("dbname=testing user=tester")

    cur = conn.cursor()
    print(entry)
    cur.execute("INSERT INTO test (ts) VALUES (%s)", (entry, ))

    conn.commit()
    cur.close()
    conn.close()

def main():
    dt = datetime.datetime.utcnow().replace(tzinfo=datetime.timezone.utc).replace(microsecond = 0)
    write_to_db(dt)


if __name__ == '__main__':
    main()

编辑

从数据库中读取返回以下内容:

(datetime.datetime(2018, 11, 21, 11, 3, 6, tzinfo=psycopg2.tz.FixedOffsetTimezone(offset=60, name=None)),)

所以也许这是psycopg2写入数据库的问题?

4

0 回答 0