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