首页 > 解决方案 > 获取从当前日期起 3 周内的记录 - mySql

问题描述

我的 MySql 数据库中有一个列名 expiresAt ,它以秒为单位保存日期(Unix 时间戳),类似于1620075613

我正在尝试获取 expiresAt 值在当前日期后 3 周内的数据的记录。

以下是我尝试过的,我生成了 currentDate + 3 Weeks 的时间戳,如下所示

let currentDate:any = new Date(), dateWithWeek:any = new Date();
currentDate = Math.round((currentDate).getTime() / 1000)

dateWithWeek.setDate(dateWithWeek.getDate() + 3 * 7);
dateWithWeek = Math.round((dateWithWeek).getTime() / 1000)

上面的代码给了我几秒钟,比如我在查询中使用的1628355849 。

我的服务在 nodejs 中,我正在使用 sequelize

db.schemes.findAll({ where: { companyId: companyId, expiresAt : {$gte : currentDate, $lte : dateWithWeek } } });

在完成上述转换并将其传递给查询之后,尽管有记录在 3 周之前过期,但我没有得到预期的结果。

我已经使用https://www.epochconverter.com/验证了 expiresAt 列中的一些值,它向我显示了接下来 3 周内的日期。

您是否看到转换为秒或查询的任何问题。

expiresAt 属性的一些示例数据

1551294879 -- 过去的时间戳

1576480067 -- 过去的时间戳

1626802304 -- 3周内(应在查询结果中返回)

1627839104 -- 3周内(应在查询结果中返回)

标签: mysqlsequelize.jsunix-timestamp

解决方案


推荐阅读