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

PostgreSQL中筛选TIMESTAMP_START小时在18:00-09:00的数据方法咨询

在PostgreSQL中实现符合条件的数据筛选

这在PostgreSQL里操作起来非常简单,我们可以通过内置的时间函数轻松实现需求,下面提供两种直观的实现方案:

方案一:提取小时数进行范围判断

利用EXTRACT(HOUR FROM ...)函数提取TIMESTAMP_START的小时部分,直接判断小时是否落在**18-23(当天晚6点到午夜)或0-9(午夜到次日早9点)**区间:

SELECT OBJECT, TIMESTAMP_START, TIMESTAMP_END
FROM your_table_name  -- 替换成你的实际表名
WHERE EXTRACT(HOUR FROM TIMESTAMP_START) BETWEEN 18 AND 23
   OR EXTRACT(HOUR FROM TIMESTAMP_START) BETWEEN 0 AND 9;

方案二:直接比较时间部分

将TIMESTAMP_START转换为纯时间类型(仅保留时分秒),然后判断该时间是否晚于等于18:00,或早于等于09:00:

SELECT OBJECT, TIMESTAMP_START, TIMESTAMP_END
FROM your_table_name  -- 替换成你的实际表名
WHERE TIME(TIMESTAMP_START) >= '18:00:00'
   OR TIME(TIMESTAMP_START) <= '09:00:00';

效果说明

用你提供的测试数据,以上两个查询都会精准返回Dog和Cat的记录,完全匹配需求。

操作难度

这两种方法都极其容易上手,只需要基础的SQL语法和PostgreSQL时间函数常识,替换表名后就能直接运行,没有复杂的逻辑门槛。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 17:12:34