首页 > 解决方案 > SQLITE:时间戳之间的选择不起作用

问题描述

我的目标是在某个时间跨度的两个时间戳之间进行搜索,所有这些都存储在一个动态数量的时间戳数组中,具体取决于我想过去搜索多少天。最初它们看起来像那样,2020-07-30T08:41:22.164Z但我删除了它不重要的部分,现在看起来像那样07-30。所以我只是将时间戳过滤到它的月份和日期。现在我的问题:我正在尝试使该命令起作用:"SELECT status FROM database WHERE timeStamp BETWEEN '%datesStored[datesStored.length -1]%' AND '%datesStored[0]%'"。忽略我在时间戳应该在的地方使用 JS 的事实。整个 SQLite 语句实际上是我构建的一个字符串,我试图以 nore-red 发送到 SQLite 节点。但这并不重要。他们唯一需要的是可以工作的特定命令。感谢您的任何回复。

var datesSaved = msg.payload;
var daysBack = global.get("maxDaysBack");
var min = datesSaved[0];
var max = datesSaved[datesSaved.length-1];

msg.topic = "SELECT status, dateTime FROM database WHERE dateTime BETWEEN '%07-28%' AND '%07-29%';";

msg.labels = msg.payload;
msg.payload = [];
return msg;

标签: javascriptsqlite

解决方案


我不确切知道您的搜索策略是什么,但如果您想查看过去 7 天的所有记录,您可以使用:

SELECT status, dateTime
FROM database
WHERE dateTime >= date('now', '-7 day');

推荐阅读