📜  如何通过Python将 current_timestamp 插入 Postgres?

📅  最后修改于: 2022-05-13 01:55:04.452000             🧑  作者: Mango

如何通过Python将 current_timestamp 插入 Postgres?

对于处理时间戳,PostgreSQL 支持两种数据类型 timestamp 和 timestamptz。 timestamp 数据类型帮助我们创建没有时区的时间戳,timestamptz 帮助我们创建带时区的时间戳。可以使用时间戳数据类型存储日期和时间。但是,它不包括时区信息。这意味着如果您更改数据库服务器的时区,保存在数据库中的时间戳值将不会自动更新,在这些情况下使用 timestamptz 数据类型。

示例 1:

下面的代码是数据类型的示例。 psycopg2.connect() 方法用于建立与数据库的连接。游标是使用 connection.cursor() 方法创建的。 execute() 方法执行给定的 sql 命令。创建了一个名为 timestamp_data 的表。格式化时间戳的字符串被插入到创建的表中。从表中获取值。在表中,我们可以看到 timestamp_timezone 列也显示了时区。

Python3
# import packages
import psycopg2
from datetime import datetime, timezone
  
# establish a connection
conn = psycopg2.connect(
    database="TIMESTAMP_DATA", user='postgres', password='pass',
    host='127.0.0.1', port='5432'
)
  
  
conn.autocommit = True
  
# creating a cursor
cursor = conn.cursor()
  
# creating a table
cursor.execute('''CREATE TABLE timestamp_data 
(timestamp TIMESTAMP,timestamp_timezone TIMESTAMPTZ);''')
  
# inserting timestamp values
cursor.execute('''INSERT INTO timestamp_data VALUES
('2021-05-20 12:07:18-09','2021-05-20 12:07:18-09');''')
  
# fetching data
sql1 = '''select * from timestamp_data;'''
cursor.execute(sql1)
for i in cursor.fetchall():
    print(i)
  
conn.commit()
  
# closing the connection
conn.close()


Python3
# import packages
import psycopg2
from datetime import datetime, timezone
  
# establish connection
conn = psycopg2.connect(
    database="Banking", user='postgres', password='pass',
    host='127.0.0.1', port='5432'
)
  
# autocommit is set to True
conn.autocommit = True
  
# creating a cursor
cursor = conn.cursor()
  
# creating a table
cursor.execute(
    'create table bank_records(amount_deposited decimal , Date timestamptz);')
  
deposit_amount = 4565.89
dt = datetime.now(timezone.utc)
  
# inserting values
cursor.execute('insert into bank_records values(%s,%s)', (deposit_amount, dt,))
  
# fetching rows
sql1 = '''select * from bank_records;'''
cursor.execute(sql1)
for i in cursor.fetchall():
    print(i)
  
conn.commit()
  
# closing the connection
conn.close()


输出:

示例 2:

在此示例中,导入了 psycopg2 和 DateTime 包。 psycopg2.connect() 方法用于建立与数据库的连接。游标是使用 connection.cursor() 方法创建的。 execute() 方法执行给定的 SQL 命令。值被插入到创建的表中。 datetime.now() 用于计算 current_timestamp,它被进一步插入到表中。 cursor.fetchall() 方法用于获取所有行。

Python3

# import packages
import psycopg2
from datetime import datetime, timezone
  
# establish connection
conn = psycopg2.connect(
    database="Banking", user='postgres', password='pass',
    host='127.0.0.1', port='5432'
)
  
# autocommit is set to True
conn.autocommit = True
  
# creating a cursor
cursor = conn.cursor()
  
# creating a table
cursor.execute(
    'create table bank_records(amount_deposited decimal , Date timestamptz);')
  
deposit_amount = 4565.89
dt = datetime.now(timezone.utc)
  
# inserting values
cursor.execute('insert into bank_records values(%s,%s)', (deposit_amount, dt,))
  
# fetching rows
sql1 = '''select * from bank_records;'''
cursor.execute(sql1)
for i in cursor.fetchall():
    print(i)
  
conn.commit()
  
# closing the connection
conn.close()

输出: