gpt4 book ai didi

javascript - 如何在sequelize标准createdAt字段中使用毫秒?

转载 作者:太空宇宙 更新时间:2023-11-03 21:53:16 25 4
gpt4 key购买 nike

在 Nodejs 应用程序中,我使用 Sequelize ORM将记录写入 mysql 数据库。默认情况下,每个表都有一个createdAt字段,但它只记录带秒的日期时间:

mysql> SELECT createdAt FROM ticks LIMIT 3;
+---------------------+
| createdAt |
+---------------------+
| 2017-11-08 16:34:21 |
| 2017-11-08 16:34:15 |
| 2017-11-08 16:34:27 |
+---------------------+
3 rows in set (0.00 sec)

由于我正在运行一个对时间非常敏感的服务,我还想记录毫秒。在 docs I found the data types ,其中包括:

Sequelize.DATE(6)  // DATETIME(6) for mysql 5.6.4+. Fractional seconds support with up to 6 digits of precision

尽管如此,我从来没有显式地写入createdAt字段(Sequelize会自动执行此操作),所以我不确定如何才能使其写入毫秒。

有人能给我指出正确的方向,以使用毫秒精度保存带有createdAt字段的记录吗?欢迎所有提示!

最佳答案

我更新了模型并创建了一个迁移以利用毫秒:

型号:

import Sequelize from 'sequelize'

class Ticks extends db.instance.Model {
static init(sequelize) {
return super.init({
.
.
createdAt: {
allowNull: false,
type: Sequelize.DATE(6)
}
})
}
}

迁移:

export default {
up: (queryInterface, Sequelize) => queryInterface
.changeColumn('ticks', 'createdAt', {
allowNull: false,
type: Sequelize.DATE(6)
}),
down: (queryInterface, Sequelize) => queryInterface
.changeColumn('ticks', 'createdAt', {
allowNull: false,
type: Sequelize.DATE
})
}

(使用ES6语法)

通过这些更改,我能够以毫秒为单位工作(尽管似乎只有 3 个位置,即使我指定了 6 个位置)

关于javascript - 如何在sequelize标准createdAt字段中使用毫秒?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47752672/

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