gpt4 book ai didi

javascript - Sequelize 将传递的日期对象转换为本地日期

转载 作者:行者123 更新时间:2023-12-03 22:20:48 27 4
gpt4 key购买 nike

当我执行将数据作为替换传递的查询时,查询中的日期未设置为 UTC-Date。
我的代码:

let startInterval = moment('2020-12-09').toDate();

db.query(`
SELECT kv.kpiId
FROM kpiValues kv
WHERE kv.insertDate >= :startInterval
`, {
type: QueryTypes.SELECT,
replacements: {
startInterval: startInterval,
}
}).catch(next)
打印 startInterval 变量会导致 2020-12-08T23:00:00.000Z
当我输出查询时,它显示
SELECT kv.kpiId
FROM kpiValues kv
WHERE kv.insertDate >= '2020-12-09 00:00:00.000'
该列是一个 Sequelize 日期列(SQL 日期时间)。查询中的值是我的本地时间 - 但数据库应该只使用 UTC 值 - 所以我希望它在查询中使用 2020-12-08T23:00:00.000。我能做什么?
Sequelize 连接:
const sequelize = new Sequelize(dbName, dbUser, dbPassword, {
host: Settings.dbUrl,
port: dbPort,
dialect: 'mariadb',
dialectOptions: {},
timezone: '+00:00',
pool: {
max: 70,
min: 5,
acquire: 30000
},
define: {
timestamps: false,
freezeTableName: true
},
logging: true // Remove property when all statements that are executed should be printed
});

最佳答案

由于 mariaDB 作为 DBMS 使用 sequelize 无法解决此问题,因此以下解决方法有效:
只需手动将替换变量作为 UTC-String 传递:

dateVariable.toISOString()

关于javascript - Sequelize 将传递的日期对象转换为本地日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65268379/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com