He almacenado datos de entrada en formato de fecha en la base de datos de postgres, pero cuando muestro la fecha en el navegador, muestra la fecha con la zona horaria y la convierte de utc. Por ejemplo, he almacenado la fecha en formato 2020-07-16 . Pero cuando muestro la fecha, se convierte en 2020-07-15T18:00:00.000Z . Intenté usar select mydate::DATE from table para obtener solo la fecha, pero aún muestra la fecha con la zona horaria. Estoy usando el módulo node-postgres en mi aplicación de nodo. ¿Sospecho que es alguna configuración en el módulo node-postgres? De su documento :
node-postgres convierte las columnas DATE y TIMESTAMP en la hora local del proceso del nodo establecido en process.env.TZ
¿Hay alguna forma en que pueda configurarlo solo para analizar la fecha? Si consulto así SELECT TO_CHAR(mydate :: DATE, 'yyyy-mm-dd') from table obtengo 2020-07-16 pero eso es mucho trabajo solo para obtener la fecha
Puede crear su propio analizador de tipo de fecha y hora:
const pg = require('pg'); pg.types.setTypeParser(1114, function(stringValue) { return stringValue; //1114 for time without timezone type }); pg.types.setTypeParser(1082, function(stringValue) { return stringValue; //1082 for date type });El ID de tipo se puede encontrar en el archivo: node_modules/pg-types/lib/textParsers.js
Se detalla aquí:
https://node-postgres.com/features/tipos
fecha/marca de tiempo/marca de tiempotz
console.log(result.rows) // { // date_col: 2017-05-29T05:00:00.000Z, // timestamp_col: 2017-05-29T23:18:13.263Z, // timestamptz_col: 2017-05-29T23:18:13.263Z // } bmc=# select * from dates; date_col | timestamp_col | timestamptz_col ------------+-------------------------+---------------------------- 2017-05-29 | 2017-05-29 18:18:13.263 | 2017-05-29 18:18:13.263-05 (1 row)