首页 > 解决方案 > Sequelize.select 返回错误的日期

问题描述

我正在尝试为现有数据库创建一个 Web(反应/续集)前端。

当我从数据库中执行选择时,sequelize 中的返回结果的日期为 1 (-1)。

以下是用于获取数据的 SQL 和代码:

let sql1 = 'SELECT count(RECEIVED_DATE) as CallCount, CAST(RECEIVED_DATE AS DATE) as CallDate FROM TowCalls WHERE OFFICE_ID = ? AND (RECEIVED_DATE BETWEEN dateadd(day,?, GETDATE()) AND GETDATE()) group by CAST(RECEIVED_DATE AS DATE) ORDER BY CAST(RECEIVED_DATE AS DATE)';
    models.sequelize.query(sql1,  { replacements: [id, -7], type: models.sequelize.QueryTypes.SELECT })
      .then(function(summary) {

当我将摘要输出到控制台时,我得到:

[
  { CallCount: 22, CallDate: '2020-12-16' },
  { CallCount: 36, CallDate: '2020-12-17' },
  { CallCount: 20, CallDate: '2020-12-18' },
  { CallCount: 12, CallDate: '2020-12-19' },
  { CallCount: 28, CallDate: '2020-12-20' },
  { CallCount: 13, CallDate: '2020-12-21' },
  { CallCount: 1, CallDate: '2020-12-22' }
]

当我在 SQL Server 本身中使用相同的查询时,我得到相同的计数,但所有日期都是 +1。

虽然我从未专门设置它,但我相信日期在 EST 时区的 SQL 中。

数据库的所有用户都在同一个时区,所以我不必担心跟踪任何更改。

标签: node.jssql-serverreactjssequelize.jsutc

解决方案


推荐阅读