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

SQL查询求助:指定日期区间内每日固定时段交易次数统计

解决思路与SQL实现方案

核心逻辑拆解

要统计指定日期区间内每日13:00-16:00的交易次数,关键是把交易时间拆分为日期维度和时间维度分别处理:

  • 先筛选出落在2022年9月1日至10月1日的交易记录
  • 再过滤出交易时间处于13:00到16:00之间的条目
  • 按日期分组,统计每组的交易数量

分数据库实现示例

不同数据库的日期处理函数略有差异,以下是几种主流数据库的实现代码:

MySQL/MariaDB

SELECT
    DATE(transaction_time) AS trade_date,
    COUNT(*) AS transaction_count
FROM
    transactions
WHERE
    -- 日期范围:包含9月1日,不包含10月1日(需包含10月1日则改为 transaction_time <= '2022-10-01 23:59:59')
    transaction_time >= '2022-09-01 00:00:00'
    AND transaction_time < '2022-10-01 00:00:00'
    -- 时间范围:包含13:00,不包含16:00(需包含16:00则改为 TIME(transaction_time) <= '16:00:00')
    AND TIME(transaction_time) >= '13:00:00'
    AND TIME(transaction_time) < '16:00:00'
GROUP BY
    DATE(transaction_time)
ORDER BY
    trade_date;

PostgreSQL

SELECT
    DATE(transaction_time) AS trade_date,
    COUNT(*) AS transaction_count
FROM
    transactions
WHERE
    transaction_time >= '2022-09-01'::TIMESTAMP
    AND transaction_time < '2022-10-01'::TIMESTAMP
    -- 13到15点对应13:00-15:59:59,需包含16:00则改为 BETWEEN 13 AND 16
    AND EXTRACT(HOUR FROM transaction_time) BETWEEN 13 AND 15
GROUP BY
    DATE(transaction_time)
ORDER BY
    trade_date;

SQL Server

SELECT
    CONVERT(DATE, transaction_time) AS trade_date,
    COUNT(*) AS transaction_count
FROM
    transactions
WHERE
    transaction_time >= '2022-09-01'
    AND transaction_time < '2022-10-01'
    AND DATEPART(HOUR, transaction_time) >= 13
    AND DATEPART(HOUR, transaction_time) < 16
GROUP BY
    CONVERT(DATE, transaction_time)
ORDER BY
    trade_date;

常见问题排查

  • 字段类型问题:确保transaction_time是datetime/timestamp类型,若为字符串格式,需先转换为日期类型(比如MySQL用STR_TO_DATE(transaction_time, '%m/%d/%Y %H:%i:%s'))
  • 边界值误差:明确需求是否包含10月1日当天,以及16:00整的交易,调整>=/<=/<等运算符
  • 时区不一致:确认数据库时区与业务时区匹配,避免因时区偏移导致时间过滤错误
  • 分组维度错误:必须按纯日期分组,若带时间部分会导致同天内按小时/分钟拆分分组,统计结果不符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 14:12:46