You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL按每日12点至次日12点偏移日区间分组统计amount总和实现方法

午间12点为边界的时间区间分组统计实现方案

核心实现逻辑是对时间字段做固定偏移,将自定义区间对齐到自然日维度分组:

  • 对每条数据的时间字段减去12小时,这样当日12:00到次日11:59:59的时间,偏移后会落在同一个自然日日期上,直接按该日期分组即可实现自定义区间的聚合。

MySQL实现示例

把代码里的timestamp_col替换为你实际的时间字段名,你的表名替换为实际表名即可:

SELECT 
    DATE_SUB(DATE(timestamp_col - INTERVAL 12 HOUR), INTERVAL -12 HOUR) AS 统计区间开始时间,
    DATE_ADD(DATE(timestamp_col - INTERVAL 12 HOUR), INTERVAL 36 HOUR) AS 统计区间结束时间,
    SUM(amount) AS 区间总金额
FROM 你的表名
GROUP BY DATE(timestamp_col - INTERVAL 12 HOUR)
ORDER BY 统计区间开始时间;

PostgreSQL实现示例

SELECT 
    (DATE(time_col - INTERVAL '12 hours')) + INTERVAL '12 hours' AS 统计区间开始时间,
    (DATE(time_col - INTERVAL '12 hours')) + INTERVAL '36 hours' AS 统计区间结束时间,
    SUM(amount) AS 区间总金额
FROM 你的表名
GROUP BY DATE(time_col - INTERVAL '12 hours')
ORDER BY 统计区间开始时间;

注意事项

  • 如果时间字段带时区属性,需要先统一转换为业务使用的时区再做偏移计算,避免分组结果出现偏差。
  • 若不需要展示区间的起止时间,可直接省略起止时间的计算字段,仅保留分组逻辑和SUM(amount)即可。

内容的提问来源于stack exchange,提问作者twit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 20:09:04