javascript - 使用 Sequalize 运算符获取日期
问题描述
我需要从数据库获取事件日期在今天之后 3 天的记录。日期格式为2019-07-06 12:00:00
例如,如果今天是 7 月 4 日 - Sequalize 应返回字段event
等于 7 月 7 日任何时间的所有记录。
我假设使用 Sequalize 运算符。Moment lib 在范围内可用,因此可能会有所帮助。
const records = await this.bookingService.findAll({
where: {
event: { [this.sequelize.Op.eq]: moment().add(3, 'days').toDate() }
}
});
一般来说,我喜欢这个想法,但它没有显示任何记录,因为它们有不同的时间。也许我需要从 DB 格式化事件字段,但不知道如何访问event
该行中的字段event: { [this.sequelize.Op.eq]: moment().add(3, 'days').toDate() }
解决方案
好吧,我找到了解决方案。实际上我不需要格式化事件日期,而是需要在 3 天内在一天的开始和结束时创建两个时间戳。像这样:
const startDate = moment().add(3, 'days').startOf('day').format()
const endDate = moment().add(3, 'days').endOf('day').format()
不仅仅是检查记录事件字段是否在此日期范围内:
const records = await this.bookingService.findAll({
where: {
event: { [this.sequelize.Op.between]: [startDate, endDate]}
}
});
推荐阅读
- mysql - Spring 事务性能多个与单个
- sql - 如何在 BigQuery 中查看整个会话路径?
- c# - 如何将 ASP.NET 身份验证 cookie 设置为在特定日期和时间过期
- bash - 如何使用 bash 命令修改 csv 文件以添加新标头?
- java - 使用自定义域时,Firebase 动态链接未获取 Utm Source 等查询参数
- c# - 有什么方法可以从 ViewModel 更改菜单选定项?
- powershell - 如何在 C# 代码中复制 New-SmbGlobalMapping?
- javascript - 如何使用 try/catch 和 finally 编写错误处理块?
- docker - 为什么我无法通过 HTTPS 访问我的 traefik 仪表板?
- python - 测试安装多个包