如何从 SQL 中的特定时间获取数据
How to fetch data from specific hours in SQL
我对 CosmosDB 有疑问,它也允许一些 SQL 查询。
我有一个数据库,每小时都会上传一条新记录。
我想获取从最后一天晚上 8 点到当天早上 8 点的所有内容,以及从当天早上 8 点到晚上 8 点的另一个查询。我在数据库中有一个 ISO 格式的时间戳。潜在的查询(或多个查询)会是什么样子?
我像这样获取了最后 24 小时,但我真的想坚持时间范围为晚上 8 点到早上 8 点,然后是早上 8 点到晚上 8 点,基本上是两班倒。上一张和现在一张。
function getLast24hTime(){
var date = new Date();
var a = date.setHours(-24);
return a;
}
然后:
SELECT * FROM c where c.time >= udf.getLastHourTime()
tl;dr 每天我都想获取前一天(晚上 8 点至上午 8 点)的特定时间范围 + 当天(上午 8 点至晚上 8 点)的特定时间范围。怎么样。
在 mysql 你可以做到
另一个班次是模拟班次
CREATE TABLE be (
`date` DATETIME
);
INSERT INTO be
(`date`)
VALUES
('2022-01-13 20:41:24'),
('2022-01-13 21:41:24'),
('2022-01-14 01:41:24'),
('2022-02-14 09:41:24'),
('2022-02-14 10:41:24');
SELECT `date` from be WHERE `date` > CURDATE() - INTERVAL 1 DAY + INTERVAL 20 HOUR
ANd `date` < CURDATE() + INTERVAL 8 HOUR
| date |
| :------------------ |
| 2022-01-13 20:41:24 |
| 2022-01-13 21:41:24 |
| 2022-01-14 01:41:24 |
db<>fiddle here
我对 CosmosDB 有疑问,它也允许一些 SQL 查询。
我有一个数据库,每小时都会上传一条新记录。 我想获取从最后一天晚上 8 点到当天早上 8 点的所有内容,以及从当天早上 8 点到晚上 8 点的另一个查询。我在数据库中有一个 ISO 格式的时间戳。潜在的查询(或多个查询)会是什么样子?
我像这样获取了最后 24 小时,但我真的想坚持时间范围为晚上 8 点到早上 8 点,然后是早上 8 点到晚上 8 点,基本上是两班倒。上一张和现在一张。
function getLast24hTime(){
var date = new Date();
var a = date.setHours(-24);
return a;
}
然后:
SELECT * FROM c where c.time >= udf.getLastHourTime()
tl;dr 每天我都想获取前一天(晚上 8 点至上午 8 点)的特定时间范围 + 当天(上午 8 点至晚上 8 点)的特定时间范围。怎么样。
在 mysql 你可以做到
另一个班次是模拟班次
CREATE TABLE be ( `date` DATETIME ); INSERT INTO be (`date`) VALUES ('2022-01-13 20:41:24'), ('2022-01-13 21:41:24'), ('2022-01-14 01:41:24'), ('2022-02-14 09:41:24'), ('2022-02-14 10:41:24');
SELECT `date` from be WHERE `date` > CURDATE() - INTERVAL 1 DAY + INTERVAL 20 HOUR ANd `date` < CURDATE() + INTERVAL 8 HOUR
| date | | :------------------ | | 2022-01-13 20:41:24 | | 2022-01-13 21:41:24 | | 2022-01-14 01:41:24 |
db<>fiddle here