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

如何在指定日期范围内筛选每日特定时段的数据库数据

实现指定日期范围+每日特定时段的数据筛选

你只需要在现有WHERE条件里添加每日时段过滤的逻辑即可,这里提供两种精准的实现方式:

方式一:按小时范围筛选(适合只关注小时段的场景)

直接提取曼谷时区下的小时数,判断是否在9到22点之间:

SELECT * 
FROM public.energy 
WHERE 
  -- 原有的日期范围条件
  time >= date_trunc('month', NOW() - INTERVAL '1 MONTH') AT TIME ZONE 'Asia/Bangkok'
  AND time < date_trunc('MINUTE', NOW() - INTERVAL '1 MONTH') AT TIME ZONE 'Asia/Bangkok'
  -- 新增:每日9:00-22:00的小时范围(包含9点到22点整)
  AND EXTRACT(HOUR FROM time AT TIME ZONE 'Asia/Bangkok') BETWEEN 9 AND 22
  AND name = 'SWU0001'
ORDER BY id DESC;

方式二:精确到时分秒的筛选(适合需要严格匹配时段的场景)

直接提取时间部分进行区间判断,能精准匹配9:00:00到22:00:00的所有数据:

SELECT * 
FROM public.energy 
WHERE 
  time >= date_trunc('month', NOW() - INTERVAL '1 MONTH') AT TIME ZONE 'Asia/Bangkok'
  AND time < date_trunc('MINUTE', NOW() - INTERVAL '1 MONTH') AT TIME ZONE 'Asia/Bangkok'
  -- 新增:精确匹配每日9:00:00至22:00:00的时段
  AND TIME(time AT TIME ZONE 'Asia/Bangkok') BETWEEN '09:00:00' AND '22:00:00'
  AND name = 'SWU0001'
ORDER BY id DESC;

关键注意点

一定要加上AT TIME ZONE 'Asia/Bangkok'再提取时间/小时,否则如果你的time字段带时区,会默认用服务器时区判断时段,导致结果不符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 05:35:30