postgresql 停止进一步转换已在UTC中日期

ckx4rj1h  于 2022-11-29  发布在  PostgreSQL
关注(0)|答案(1)|浏览(102)

默认情况下,postgres中存储的任何日期/时间戳都是标准UTC格式。Postgres的DATE列类型只存储完整timestamp的日期部分。
在postgres中使用typeorm,并使用repositories时,日期是按原样提取的。

const queryRunner = await this.connection.createQueryRunner();
await queryRunner.connect()
const response = await queryRunner.query('SELECT * FROM MY_VIEW WHERE AGE=23');

对于同一个日期(仅限)列,我收到类似于以下内容的内容,其值为“1999-01-02”

{
  name: 'mleko',
  age : '23',
  dob : '1999-01-01:T22:00:00:000Z',
  address: 'xyz'
}

我不确定这个转换到底发生在哪里,可能是typeorm使用的底层驱动程序,但是,我如何告诉typeorm不要将已经是UTC的日期转换为UTC。

6uxekuva

6uxekuva1#

因此,我解决这个问题的方法是对原始查询进行强制转换:

const queryRunner = await this.connection.createQueryRunner();
await queryRunner.connect()
const response = await queryRunner.query('SELECT name, age, dob::VARCHAR, address FROM MY_VIEW WHERE AGE=23');

这将避免任何转换,

相关问题