根据同一天(时间戳)获取n条数据
Get n data based on the same day (timestamp)
我有这个 table "sensor",它有这些字段:
- id (int,PK)
- timestamp(时间戳)
- 纬度(varchar)
- 经度(varchar)
- 数据(浮点数)
在一个查询中,我想获得同一天的 5 行。请注意,这不是当前日期,并且数据有很多不同的日期。所以,如果他们在同一天,我想得到他们..
我尝试使用 INTERVAL 但它不起作用。谢谢
假设您想要查看上周传感器数据点的数量
SELECT
DATE(timestamp) dt,
COUNT(1) datapoints
FROM sensor
WHERE
timestamp >= DATE(NOW()) - INTERVAL 1 WEEK + INTERVAL 0 SECOND
GROUP BY DATE(timestamp);
按天查看这个月
SELECT
DATE(timestamp) dt,
COUNT(1) datapoints
FROM sensor
WHERE
timestamp >= DATE(NOW()) - INTERVAL (DAY(NOW())-1) WEEK + INTERVAL 0 SECOND
GROUP BY DATE(timestamp);
按天看今年
SELECT
DATE(timestamp) dt,
COUNT(1) datapoints
FROM sensor
WHERE
timestamp >= MAKEDATE(YEAR(NOW()),1)
GROUP BY DATE(timestamp);
按月查看今年
SELECT
DATE(timestamp - INTERVAL (DAY(timestamp)-1) DAY) dt,
COUNT(1) datapoints
FROM sensor
WHERE
timestamp >= MAKEDATE(YEAR(NOW()),1)
GROUP BY DATE(timestamp - INTERVAL (DAY(timestamp)-1) DAY);
我有这个 table "sensor",它有这些字段:
- id (int,PK)
- timestamp(时间戳)
- 纬度(varchar)
- 经度(varchar)
- 数据(浮点数)
在一个查询中,我想获得同一天的 5 行。请注意,这不是当前日期,并且数据有很多不同的日期。所以,如果他们在同一天,我想得到他们.. 我尝试使用 INTERVAL 但它不起作用。谢谢
假设您想要查看上周传感器数据点的数量
SELECT
DATE(timestamp) dt,
COUNT(1) datapoints
FROM sensor
WHERE
timestamp >= DATE(NOW()) - INTERVAL 1 WEEK + INTERVAL 0 SECOND
GROUP BY DATE(timestamp);
按天查看这个月
SELECT
DATE(timestamp) dt,
COUNT(1) datapoints
FROM sensor
WHERE
timestamp >= DATE(NOW()) - INTERVAL (DAY(NOW())-1) WEEK + INTERVAL 0 SECOND
GROUP BY DATE(timestamp);
按天看今年
SELECT
DATE(timestamp) dt,
COUNT(1) datapoints
FROM sensor
WHERE
timestamp >= MAKEDATE(YEAR(NOW()),1)
GROUP BY DATE(timestamp);
按月查看今年
SELECT
DATE(timestamp - INTERVAL (DAY(timestamp)-1) DAY) dt,
COUNT(1) datapoints
FROM sensor
WHERE
timestamp >= MAKEDATE(YEAR(NOW()),1)
GROUP BY DATE(timestamp - INTERVAL (DAY(timestamp)-1) DAY);