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

如何扩展Oracle查询以获取当年剩余所有周的年、周等相关数据?

Oracle查询:获取当年剩余所有周的日期数据

基于你提供的获取当前日期维度的Oracle语句,以下是扩展后的查询,可输出当年剩余所有周的每一天数据,格式与示例一致:

WITH date_range AS (
    SELECT TRUNC(SYSDATE) AS curr_date
    FROM DUAL
    UNION ALL
    SELECT curr_date + 1
    FROM date_range
    WHERE curr_date + 1 <= TRUNC(ADD_MONTHS(SYSDATE, 12), 'YYYY') - 1
)
SELECT '(' || TO_CHAR(curr_date, 'YYYY/MM/DD/D') || ')' AS formatted_date
FROM date_range
ORDER BY curr_date;

语句说明:

  • 递归CTE date_range:从当前日期的零时开始,逐天生成日期,直到当年最后一天(TRUNC(ADD_MONTHS(SYSDATE, 12), 'YYYY') - 1 计算出当年12月31日)
  • 格式化输出:用TO_CHAR函数将日期按YYYY/MM/DD/D格式转换,再拼接括号,得到示例要求的(年/月/日/星期几)格式
  • 排序:按日期升序排列,保证输出顺序符合时间逻辑

如果需要筛选每周的特定日期(比如仅每周一),可以在最后SELECT语句后添加WHERE TO_CHAR(curr_date, 'D') = '1'(注:Oracle中D的取值依赖会话的NLS设置,1通常代表周日,若需要周一为一周起始,可改用IW相关逻辑调整)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 00:32:05