在 Sequelize 中,日期类型是非常常见的数据类型之一。在实际开发中,我们需要对日期类型字段进行操作,如查询、排序、格式化等。本文将介绍如何在 Sequelize 中进行日期类型字段的操作。本文假设你已经具备 Sequelize 基础知识。
查询
按日期范围查询
在 Sequelize 中,我们可以使用 Op
对象来进行运算符操作。查询日期范围可以使用 Op.between
运算符。例如,我们要查询 created_at
字段在 2021 年 1 月 1 日到 2021 年 1 月 31 日之间的记录,可以使用以下代码:
const records = await Model.findAll({ where: { created_at: { [Op.between]: ['2021-01-01', '2021-01-31'], }, }, });
按日期排序
在 Sequelize 中,我们可以使用 order
选项对查询结果进行排序。要按日期排序,可以将日期字段作为排序条件之一。例如,我们要按 created_at
字段降序排序,可以使用以下代码:
const records = await Model.findAll({ order: [ ['created_at', 'DESC'], ], });
格式化
格式化为字符串
在 Sequelize 中,日期类型字段是 JavaScript 中的 Date
类型。要将日期类型字段格式化为字符串,可以使用 moment
库或 JavaScript 的原生方法。
使用 moment
库格式化日期:
const moment = require('moment'); const record = await Model.findOne({}); const formattedDate = moment(record.created_at).format('YYYY-MM-DD HH:mm:ss');
使用 JavaScript 的原生方法格式化日期:
const record = await Model.findOne({}); const formattedDate = record.created_at.toISOString().slice(0, 19).replace('T', ' ');
格式化为时间戳
要将日期类型字段格式化为时间戳,可以使用 JavaScript 的原生方法。
const record = await Model.findOne({}); const timestamp = record.created_at.getTime();
更新
更新为当前时间
要将日期类型字段更新为当前时间,可以使用 Sequelize.literal
方法。
const now = new Date(); await Model.update({ updated_at: Sequelize.literal('CURRENT_TIMESTAMP'), }, { where: { id: 1, }, });
总结
本文介绍了在 Sequelize 中如何进行日期类型字段的操作。包括按日期范围查询、按日期排序、格式化为字符串、格式化为时间戳、更新为当前时间等操作。希望本文能对你的开发工作有所帮助。完整示例代码请参考 GitHub。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/663f20dbd3423812e4d5b31b