在我花了一天的时间来理解为什么我的续集选择错误的计算时间之后,我在本地主机和服务器上执行了这段代码:
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 差异?
必须在这里设置
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
}
}
);