您的位置:首页 > 数据库 > MySQL

MySQL某一时间点数据与一小时前、一天前、一月前数据对比

2016-01-25 17:26 671 查看
数据与一月前数据对比

SELECT
(df1. VALUE - df2. VALUE) AS bhl,
df1.VALUE AS lastCode,
df1.time AS lastTime,
df2.VALUE AS startCode,
df2.time AS startTime
FROM
monthsave AS df1
LEFT JOIN monthsave AS df2
ON  LEFT (DATE_ADD(df1.time,INTERVAL -1 MONTH) ,7) = DATE_FORMAT(df2.time, '%Y-%m')
AND df1.id = df2.id


与一小时前数据对比

SELECT DATE_ADD(LEFT (df1.time, 13),INTERVAL -1 HOUR) as oldTime,
(df1. VALUE - df2. VALUE) AS bhl,
df1.VALUE AS lastCode,
df1.time AS lastTime,
df2.VALUE AS startCode,
df2.time AS startTime
FROM
hoursave AS df1
LEFT JOIN hoursave AS df2
ON  LEFT (DATE_ADD(df1.time,INTERVAL -1 HOUR) ,13) = DATE_FORMAT(df2.time, '%Y-%m-%d %H')
AND df1.id = df2.id


与一天前数据对比

SELECT
(df2. VALUE - df1. VALUE) AS bhl,
df1.VALUE AS lastCode,
df1.time AS lastTime,
df2.VALUE AS startCode,
df2.time AS startTime
FROM
daysave AS df1
LEFT JOIN daysave AS df2
ON DATE_ADD(LEFT (df1.time, 10),INTERVAL - 1 DAY) = LEFT (df2.time, 10)
AND df1.id = df2.id


还可以根据id与时间排序,只需加上
ORDER BY df1.id ,df1.time desc
即可

注:与一天前对比,此处所写方法与一小时前有些不同。不知道为什么,这种方法查一天前可以,一小时前却不行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: