mysql - 为什么在 hh/mm/ss 不同的日期之间 Sequelize 返回空

标签 mysql node.js sequelize.js

当我在下面使用日期格式 YYYY-MM-DD HH:MM:SS 运行 sequelize 查询时

var query = "select * from alert_detail_full as a\
    where a.client_id = '" + clientId + "'\
    AND a.timestamp between '" + startDate + "' AND '" + endDate + "';";
    db.sequelize.query(query).spread(function (sresult, met) {
        console.log(sresult)
        var alerts = [];
        if (sresult != false) {
            sresult.forEach(function (e) {
                alerts.push(e);
            });
        }
        response = {
            alerts: alerts
        };
        next(response);
    });

我的 sequelize 运行这个查询:

SELECT * FROM alert_detail_full as a    
WHERE a.client_id = 'CL001' 
AND a.timestamp BETWEEN '2018-06-08 00:02:00' AND '2018-06-08 00:06:00';

如果我将这个查询直接放在 mysql 中,它会给我一个结果列表。 但是在 sequelize sresult 返回 [] ,但是如果我在几天而不是几分钟内创建差异,它将返回如下结果列表。

{
            "client_id": "CL001",
            "collector_id": "C01",
            "sensor_id": "S001",
            "value": "4341435.452947",
            "timestamp": "2018-06-08T08:01:00.000Z",
            "alert_yellow": "60230000.000000",
            "alert_red": "456000.000000",
            "alert_flag": "low"
        },

更新

如果我在时间之间设置很大的间隔,例如 T00:02:00 - T20:02;00,它也会在 sequelize 中生成结果,但如果间隔很小,我只能得到MYSQL 和 sequelize 中的结果总是返回 []

最佳答案

Sequelize 在插入和读取时默认将日期转换为UTC。你可以告诉 sequelize 不要这样做

const sequelize = new Sequelize('db_name', 'postgres', 'postgres', {
  host: '127.0.0.1',
  dialectOptions: {
    useUTC: false //for reading from database
  },
  dialect: 'postgres',
  timezone: '+05:30', // for writng
});

也看看类似的问题here

关于mysql - 为什么在 hh/mm/ss 不同的日期之间 Sequelize 返回空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50959295/

相关文章:

mysql - 将 MySQL 转储导入特定表空间

node.js - 错误 : Cannot find module 'browserslist' when I run the npm run build

javascript - 如何将mysql查询转换为sequelize orm

node.js - 使用 include 从 sequelize 访问内部连接数据

mysql - 在 mySQL 中,如何为多个表中的每个客户端 ID 选择最新的时间戳?

MySQL如何在使用3个表时求和

MySQL 查询消耗了过多的系统 CPU 处理器时间

mysql - 检索客户 ID strip

node.js - 使用对话模型对 AMAZON.NUMBER 类型进行 Alexa 输入验证

javascript - 如何在 SequelizeJS 中创建模型时设置额外属性?