¿Cómo insertar current_timestamp en Postgres a través de Python?

Para el procesamiento de marcas de tiempo, PostgreSQL admite dos tipos de datos timestamp y timestamptz. timestamp datatype nos ayuda a crear una marca de tiempo sin zona horaria, y timestamptz nos ayuda a crear una marca de tiempo con una zona horaria. Uno puede almacenar tanto la fecha como la hora con el tipo de datos de marca de tiempo. Sin embargo, no incluye información de la zona horaria. Implica que si modifica la zona horaria del servidor de su base de datos, el valor de la marca de tiempo guardado en la base de datos no se actualizará automáticamente, en estas situaciones se utiliza el tipo de datos timestamptz.

Ejemplo 1:

El siguiente código es un ejemplo de los tipos de datos. El método psycopg2.connect() se utiliza para establecer una conexión con la base de datos. El cursor se crea utilizando el método connection.cursor() . El método execute() ejecuta los comandos sql dados. Se crea una tabla denominada timestamp_data. Se inserta una string de la marca de tiempo formateada en la tabla creada. Los valores se obtienen de la tabla. En la tabla, podemos ver que la columna timestamp_timezone también muestra la zona horaria. 

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()

Producción:

Ejemplo 2:

En este ejemplo, se importan los paquetes psycopg2 y DateTime. El método psycopg2.connect() se utiliza para establecer una conexión con la base de datos. El cursor se crea utilizando el método connection.cursor(). El método execute() ejecuta los comandos SQL dados. Los valores se insertan en la tabla creada. datetime.now() se usa para calcular la marca de tiempo actual, se inserta más en la tabla. El método cursor.fetchall() se usa para obtener todas las filas. 

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()

Producción:

(Decimal(‘4565.89’), fechahora.fechahora(2022, 3, 6, 19, 2, 3, 669114, 

tzinfo=datetime.timezone(datetime.timedelta(segundos=19800))))

Publicación traducida automáticamente

Artículo escrito por sarahjane3102 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *