Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 为什么要在hh/mm/ss返回为空的日期之间续写_Mysql_Node.js_Sequelize.js - Fatal编程技术网

Mysql 为什么要在hh/mm/ss返回为空的日期之间续写

Mysql 为什么要在hh/mm/ss返回为空的日期之间续写,mysql,node.js,sequelize.js,Mysql,Node.js,Sequelize.js,当我以日期格式运行下面的sequelize查询时YYYY-MM-DD HH:MM:SS 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(f

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

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);
    });
my 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
});
再看看类似的问题