【发布时间】:2016-09-16 11:45:29
【问题描述】:
我需要最后一个月的记录数据,而不是当前日期-1个月的数据。
这是我的错误查询:D
SELECT MIN(date(Timestamp)) as fDate , MAX(date(Timestamp)) as tDate FROM data WHERE boxid=45 AND
YEAR(Timestamp) = YEAR(CURRENT_DATE - INTERVAL 1 MONTH)
AND MONTH(Timestamp) = MONTH(CURRENT_DATE - INTERVAL 1 MONTH)
编辑:我的表中有很多数据,我只想查看最后重新编码的数据从哪里开始以及在哪里结束,但我想要最后一个月。
例如,表格已重新编码至 1 月 17 日。 我现在想要 2 个日期:1 月 1 日和 17 日
我试过了
SELECT max(date(Timestamp)) as toDate, min(date(timestamp)) as fromDate FROM data WHERE timestamp<=(SELECT MAX(date(Timestamp)) FROM data )
AND timestamp>=(SELECT (MAX(date(Timestamp))- INTERVAL 1 MONTH) FROM data ) AND ID=10
它有一个奇怪的行为,它给我的时间不是 30 天......
【问题讨论】:
-
尝试选择过去 30 天的查询?
-
是的,我需要最后一个月,实际上只有两个日期,最后几个月的数据开始和结束的地方,这就是我使用 max() 和 min() 的原因
-
@Khan,如果我没记错的话,您的数据日期如“2016-08-01”、“2016-08-13”、“2016-08-17”、“2016” -09-01”、“2016-09-02”、“2016-09-03”。现在您要选择日期与“2016-08-01”、“2016-08-13”、“2016-08-17”匹配的记录。对吗?
-
然后你需要做一个第一次选择来获取最后一个时间戳并使用它而不是 CURRENT_DATE