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

如何为SQL查询配置当前及上一财年的dynamic dates?

动态生成当前及上一财年的SQL查询方案

假设你的财年规则是每年7月1日至次年6月30日,以下方案可以实现完全动态的财年日期与年份范围,无需手动硬编码更新:

通用SQL实现(适配多数数据库)

WITH fy_dates AS (
    -- 计算当前财年的起始年份:当前月份≥7则取当年,否则取上一年
    SELECT 
        CASE 
            WHEN EXTRACT(MONTH FROM CURRENT_DATE) >= 7 THEN EXTRACT(YEAR FROM CURRENT_DATE)
            ELSE EXTRACT(YEAR FROM CURRENT_DATE) - 1
        END AS current_fy_start_year
)
-- 当前财年数据查询
SELECT 
    CONCAT(current_fy_start_year, '/', current_fy_start_year + 1) AS FY_YEAR_SNAPSHOT,
    1 AS COUNT
FROM YOUR_TABLE, fy_dates
WHERE DATE(CONCAT(current_fy_start_year, '-07-01')) BETWEEN EFEC_STRT_DT AND EFEC_END_DT

UNION ALL

-- 上一财年数据查询
SELECT 
    CONCAT(current_fy_start_year - 1, '/', current_fy_start_year) AS FY_YEAR_SNAPSHOT,
    1 AS COUNT
FROM YOUR_TABLE, fy_dates
WHERE DATE(CONCAT(current_fy_start_year - 1, '-07-01')) BETWEEN EFEC_STRT_DT AND EFEC_END_DT;

针对Oracle数据库的调整

Oracle中CURRENT_DATE需要替换为SYSDATE,且日期转换需用TO_DATE函数:

WITH fy_dates AS (
    SELECT 
        CASE 
            WHEN EXTRACT(MONTH FROM SYSDATE) >= 7 THEN EXTRACT(YEAR FROM SYSDATE)
            ELSE EXTRACT(YEAR FROM SYSDATE) - 1
        END AS current_fy_start_year
    FROM DUAL
)
SELECT 
    CONCAT(current_fy_start_year, '/', current_fy_start_year + 1) AS FY_YEAR_SNAPSHOT,
    1 AS COUNT
FROM YOUR_TABLE, fy_dates
WHERE TO_DATE(CONCAT(current_fy_start_year, '-07-01'), 'YYYY-MM-DD') BETWEEN EFEC_STRT_DT AND EFEC_END_DT

UNION ALL

SELECT 
    CONCAT(current_fy_start_year - 1, '/', current_fy_start_year) AS FY_YEAR_SNAPSHOT,
    1 AS COUNT
FROM YOUR_TABLE, fy_dates
WHERE TO_DATE(CONCAT(current_fy_start_year - 1, '-07-01'), 'YYYY-MM-DD') BETWEEN EFEC_STRT_DT AND EFEC_END_DT;

核心逻辑说明

  • 通过CTE fy_dates 一次性计算当前财年的起始年份,避免重复计算
  • 财年字符串(如2023/2024)通过拼接起始年份和起始年份+1自动生成
  • 财年起始日期(每年7月1日)通过拼接起始年份和固定月日动态生成,无需硬编码
  • 上一财年只需将起始年份减1,即可自动对应上一财年的年份范围与起始日期

内容的提问来源于stack exchange,提问作者CK-P

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 06:27:42