在node-sqlite3库中使用nodejs,并给出包含时间戳字符串的列timestamp的sqlite表,如:
+-----------------------------------+--------+ +
| timestamp | score | .... |
+-----------------------------------+--------+ +
| 2022-02-22T00:49:56.184769483Z | 1.056 | |
| 2022-02-22T01:04:52.185208658Z | 1.234 | |
| 2022-02-22T01:19:51.779811366Z | 1.432 | |
...
| 2022-02-23T00:50:01.439211796Z | 2.693 | |
| 2022-02-23T01:05:57.290233187Z | 2.792 | |
...如何在时间01:00:00之后选择每天的第一行?
在本例中,所需的行将具有timestamp等于:
2022-02-22T01:04:52.185208658Z2022-02-23T01:05:57.290233187Z发布于 2022-02-22 04:51:37
我们可以使用ROW_NUMBER,如下所示:
WITH cte AS (
SELECT *, ROW_NUMBER() OVER (PARTITION BY SUBSTR(timestamp, 1, 10)
ORDER BY timestamp) rn
FROM yourTable
WHERE SUBSTR(timestamp, 12, 2) >= '01'
)
SELECT timestamp, score
FROM cte
WHERE rn = 1;https://stackoverflow.com/questions/71215971
复制相似问题