python psycopg2 cambió el formato de fecha.
Cuando selecciono esto en psql
select ts_changed, to_char(ts_changed, 'YYYY-MM-DD HH24:MI:SS.MS')
from ...
Obtengo este formato.
- 2022-01-05 14:51:11.334
En un script de Python con psycopg obtengo esto.
- 2022-01-05 14:49:05.777000
psycopg ha agregado tres dígitos más que no quiero, porque causa problemas con Elasticsearch. Aquí está mi consulta.
pg_initconnect = 'host={} dbname={} user={}'.format(db_host, db_db, db_user)
pg_connect = psycopg2.connect(pg_initconnect)
do_sql = pg_connect.cursor()
do_sql.execute(db_query)
result = do_sql.fetchall()
pg_connect.commit()
return(result)
¿Cómo le digo a psycopg que devuelva la fecha correcta?
davy.ai
Puedes cambiar el formato de fecha devuelto por psycopg especificando un tipo de conversor personalizado. En este caso, quieres usar el tipo
timestamp
y formatearlo comoYYYY-MM-DD HH24:MI:SS.MS
. Así es cómo hacerlo:Este código registra un conversor de tipo
timestamp
personalizado que formatea el timestamp comoYYYY-MM-DD HH24:MI:SS.MS
. Este conversor de tipo se utiliza entonces para todos los timestamps devueltos por psycopg en la sesión actual.