sequelize 提供与服务器上不同的时区

问题描述 投票:0回答:1

在我花了一天的时间来理解为什么我的续集选择错误的计算时间之后,我在本地主机和服务器上执行了这段代码:

const time = await db.Bar.sequelize.query("Select CURRENT_TIME")
console.log("CURRENT_TIME: ", time);
const time3 = await db.Bar.sequelize.query("Select now()")
console.log("Time now: ", time3)

它返回了这个:

CURRENT_TIME: [ [ { current_time: '15:00:45.709239+02' } ], .....

现在时间: [ [ { 现在: 2023-12-06T13:00:45.711Z } ],...

然后当我在本地主机和服务器上的 postgres pgAdmin4 上尝试这个

select CURRENT_TIME
select now()
时,它们返回了正确的 GMT:

14:00:30.633552+01:00

服务器和本地主机已设置为 GMT+1

那么为什么续集会存在这些 GMT 差异?

javascript postgresql sequelize.js
1个回答
0
投票

必须在这里设置

sequelize = new Sequelize(process.env.DB_DATABASE, process.env.DB_USERNAME, process.env.DB_PASSWORD,
        {
            host: process.env.DB_SERVER,
            port: process.env.DB_PORT,
            secure: true,
            dialect: 'postgres',
            timezone: '+01:00',     // here 
            pool: {
                min: 0,
                max: 5,
                idle: 10_000,
                acquire: 30_000
            }
        }
    );
© www.soinside.com 2019 - 2024. All rights reserved.