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

Oracle SQL查询当日15:00前及历史全量入库记录

Oracle查询:筛选当日15:00前及历史全量记录

可以通过以下两种方式实现需求,核心思路是生成当日15:00:00的时间阈值,筛选所有入库时间早于该阈值的记录:

方法一:使用TRUNC+INTERVAL(推荐)

SELECT *
FROM 你的表名
WHERE dstamp < TRUNC(SYSDATE) + INTERVAL '15' HOUR;

逻辑说明:

  • TRUNC(SYSDATE):将当前系统日期截断至当日00:00:00(比如当前是2023-03-26 15:10,截断后为2023-03-26 00:00:00)
  • + INTERVAL '15' HOUR:在当日0点基础上添加15小时,得到当日15:00:00的时间点
  • 条件dstamp < 该时间点自动覆盖:
    • 所有历史日期的全量记录(历史日期的入库时间必然早于当日15点)
    • 当日15:00之前的入库记录
    • 自动排除当日15:00之后的新增记录

方法二:使用TO_CHAR+TO_DATE拼接

如果习惯用字符串拼接的方式构造时间阈值,也可以这么写:

SELECT *
FROM 你的表名
WHERE dstamp < TO_DATE(TO_CHAR(SYSDATE, 'YYYY-MM-DD') || ' 15:00:00', 'YYYY-MM-DD HH24:MI:SS');

逻辑说明:

  • TO_CHAR(SYSDATE, 'YYYY-MM-DD'):提取当前日期的年月日部分(如"2023-03-26")
  • 拼接' 15:00:00'得到当日15点的时间字符串(如"2023-03-26 15:00:00")
  • TO_DATE将字符串转换为日期时间类型,与dstamp进行比较

注意事项

  • 确保dstamp字段是DATE或TIMESTAMP类型;如果是字符串存储,需先通过TO_DATE转换为日期类型再比较(不建议用字符串存储时间)
  • 两种写法对DATE和TIMESTAMP类型的dstamp都适用,Oracle会自动处理类型转换

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 19:35:05