将datetime对象格式化为SQL的字符串

时间:2017-08-13 10:28:21

标签: sql node.js sqlite momentjs

我正在尝试对我构建的新api端点进行单元测试,该端点查询SQLite实例并返回结果。

我正从JSON播种SQLite实例,这是我想要提取的记录:

{
    "model": "JobResponse",
    "data": {
        "id": 4,
        "JobId": "1",
        "createdAt": "2017-08-13 00:01"
    }
},

我通常使用sequelize,并使用momentjs对象作为timeparam,但我需要的查询在sequelize中是不可能的,所以我使用的是原始查询。我的js正在生成以下查询:

SELECT JobId, WHERE JobId = 2 AND createdAt > 2017-08-13 AND createdAt < 2017-08-14;

我确定这是datetime元素格式化的问题,但JSON种子和SQL查询都必须是字符串形式,我已经尝试moment().format(),但后来我得到错误,例如:

  

SQLITE_ERROR:靠近“00”

这可能是因为时刻格式中有空格。

我应该如何将这些日期时间参数格式化为字符串?

更新

根据评论中的讨论,我现在已经将我的查询中间化为包含引号,例如: SELECT JobId, FROM JobResponses WHERE createdAt > '2017-08-10 00:00:01' AND createdAt < '2017-08-10 23:59:00' GROUP BY JobId;

但我仍未收到任何结果

0 个答案:

没有答案