如何找到匹配的时间戳?

时间:2017-06-13 04:01:43

标签: sql sqlite

+----------------------------+   +----------------------------+
| ID |       Date            |   | ID |       Date            |
+----------------------------+   +----------------------------+
| 1  |   2017-06-13 22:10:01 |   | 1  | 2017-06-20 22:10:50   |
+----------------------------+   +----------------------------+
| 2  |   2017-06-14 13:22:20 |   | 2  | 2017-06-23 22:10:55   |
+----------------------------+   +----------------------------+
| 3  |   2017-06-16 22:10:01 |   | 3  | 2017-06-27 22:10:35   |
+----------------------------+   +----------------------------+
                                 | 4  | 2017-07-04 22:10:07   |
                                 +----------------------------+

我有2个表,相同的列。第一个是样本,每周有条目,每个条目有1分钟的差异(总共10 080个条目)。而另一个则每次(1分钟)无限期地获得新值。

我尝试做的是将每个新条目与第一个数据库中的条目进行比较。但我想根据工作日和时间(同一小时和同一分钟)进行比较。

例如,星期一11:00(无论月,日和年)的条目应与星期一11:00的样本数据库进行比较。

我想要做的是在与第二个表中的条目相同的工作日时从示例数据库中获取条目的编号:

2017-06-20 22:10:50应该返回1.
2017-06-23 22:10:55应该返回3.
2017-06-27 22:10:35应该返回1.
2017-07-04 22:10:07应该返回1.

EDIT2:

我想在解释两个表格的目的时,你可能会更好地理解事情。

我数据库中的真实表格有更多列:传感器的ID及其值 第一个表,即样本表,将收到整整一周的数据。它用作参考。
第二个表每分钟接收一次数据,当一个数据进入时,应该与样本表中的记录进行比较,以检测值是否等于(正常值)。 因此,我希望通过与同一工作日,相同小时和分钟的记录进行比较来检测异常值。

1 个答案:

答案 0 :(得分:0)

我想我找到了我想要的东西。这是一个有用的链接:Get month from DATETIME in sqlite

以下是匹配时间戳的方法:

//Matching weekday
select * from table where strftime('%w', Date) = '0';

//Matching weekday + hours and minutes
select * from table where strftime('%w', Date) = '0' and strftime('%H:%M', Date) = '22:10';

无论如何,谢谢你们。