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

如何结合表中DT_START列与SYSDATE动态获取最新ID_Interval

实现方案

你可以通过DT_START结合SYSDATE实现动态拉取最新ID_Interval的需求,以下是两种常用的实现写法:


写法1:匹配当月生效记录(当月数据已生成的场景)

如果每月生成的ID_Interval对应的DT_START字段值落在当月自然月范围内,可以直接按年月匹配,完全动态无需手动调整参数:

SELECT ID_Interval
FROM t_usage_interval
WHERE TRUNC(DT_START, 'MONTH') = TRUNC(SYSDATE, 'MONTH');

写法2:取最近生效的记录(兼容当月暂未生成数据的场景)

如果存在月初还未生成当月新ID_Interval的情况,可以排序后取时间最近的一条记录,避免查询为空:

适配支持FETCH FIRST语法的数据库(Oracle 12c+、PostgreSQL、MySQL 8.0+等)

SELECT ID_Interval 
FROM t_usage_interval
WHERE DT_START <= SYSDATE
ORDER BY DT_START DESC
FETCH FIRST 1 ROW ONLY;

适配Oracle 11g及更早不支持FETCH FIRST语法的版本

SELECT ID_Interval 
FROM (
    SELECT ID_Interval 
    FROM t_usage_interval
    WHERE DT_START <= SYSDATE
    ORDER BY DT_START DESC
)
WHERE ROWNUM = 1;

注意事项

  • 如果表数据量较大,建议给DT_START字段添加索引,可大幅提升查询效率
  • 确保每月生成记录时DT_START字段赋值规则和查询逻辑匹配,避免出现取数错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 22:27:00