如何调整SQL查询获取当日7点至7日前7点的最近7天数据?
调整SQL查询以获取最近7天(每日7点为分界)的数据
原查询依赖固定日期范围,只能查询单一日段的7点至次日7点数据。要实现**自动获取最近7天(以当日7点为结束节点,7天前的7点为起始节点)**的数据,需用动态日期函数替代固定日期,无需手动修改时间参数。
适用于SQL Server的修改后语句
SELECT TOP (10000000) id, PartNum, TimeStamp, Station FROM test_module WHERE TimeStamp >= DATEADD(DAY, -7, CAST(CAST(GETDATE() AS DATE) AS DATETIME) + '07:00:00') AND TimeStamp <= CAST(CAST(GETDATE() AS DATE) AS DATETIME) + '07:00:00' ORDER BY TimeStamp ASC
语句说明
CAST(GETDATE() AS DATE):提取当前系统日期的纯日期部分(不含时分秒)- 拼接
'07:00:00'得到当日7点整的时间戳 DATEADD(DAY, -7, ...):计算7天前的当日7点时间戳,以此作为查询的起始时间
如果是MySQL环境,可使用以下语句
SELECT id, PartNum, TimeStamp, Station FROM test_module WHERE TimeStamp >= DATE_ADD(CONCAT(CURDATE(), ' 07:00:00'), INTERVAL -7 DAY) AND TimeStamp <= CONCAT(CURDATE(), ' 07:00:00') ORDER BY TimeStamp ASC LIMIT 10000000;
内容的提问来源于stack exchange,提问作者Sriram
相关产品推荐
相关产品推荐

