该回答引用ChatGPT-3.5,仅供参考,不保证完全正确
要获取每个周期(如3个月前或一年零3个月前)的数据,你可以使用日期函数和相对日期的计算来实现。
以下是一个示例,演示如何获取3个月前的数据:
SELECT sm.stove_volume, sm.issue_num, MAX(tpfr.create_time) AS max_time ,tpfr.stove_num, tpfr.stove_code, AVG(tpfr.temp_3) AS davg3
FROM temp_press_feed_rate tpfr
LEFT JOIN stove_manage sm ON tpfr.stove_num = sm.stove_num
WHERE stove_code IS NOT NULL
AND sm.stove_volume = 10
AND sm.issue_num = '一期'
AND tpfr.create_time >= DATE_FORMAT(DATE_SUB(CURRENT_DATE, INTERVAL 3 MONTH), '%Y-%m-26')
AND tpfr.create_time <= DATE_FORMAT(DATE_SUB(CURRENT_DATE, INTERVAL 2 MONTH), '%Y-%m-25')
GROUP BY tpfr.stove_num, tpfr.stove_code, sm.stove_volume, sm.issue_num
ORDER BY tpfr.stove_num
在上述代码中,使用DATE_SUB()
函数和INTERVAL
关键字来计算日期的相对值。DATE_SUB(CURRENT_DATE, INTERVAL 3 MONTH)
表示当前日期减去3个月,DATE_SUB(CURRENT_DATE, INTERVAL 2 MONTH)
表示当前日期减去2个月。然后,使用DATE_FORMAT()
函数将日期格式化为所需的形式(月度计量的开始日期和结束日期)。根据这些条件,查询可以获取3个月前的数据。
类似地,你可以根据需要,使用DATE_SUB()
函数和INTERVAL
关键字来计算其他周期的数据。例如,如果要获取一年零3个月前的数据,可以将INTERVAL
的值设置为1 YEAR + 3 MONTH
。根据你的具体需求,进行相应的日期计算即可。