如何在SQL查询结果中基于PRODUCTION_DATE添加财周列
在SQL查询中新增财周列并保留原有数据
修改后的SQL查询语句
SELECT ORDER_QTY, SKU, INVOICE_NUMBER, CUSTOMER_NUMBER, ROUTE, ALLOCATED_QTY, SHORTED_QTY, PRODUCTION_DATE, -- 生成财周列,根据你的财周规则选择对应方式 DATEPART(WEEK, PRODUCTION_DATE) AS FISCAL_WEEK -- 若财年起始非日历年初(比如从7月1日开始),使用下方替代: -- DATEPART(WEEK, DATEADD(MONTH, 6, PRODUCTION_DATE)) AS FISCAL_WEEK FROM [DATEBASE_NAME].[XYZ].[ORDERS] WHERE [PRODUCTION_DATE] >= DATEADD(day, -300, GETDATE()) AND [PRODUCTION_DATE] <= GETDATE()
关键说明
- 基础财周计算:
DATEPART(WEEK, PRODUCTION_DATE)会直接返回日期对应的周数,默认规则取决于数据库的DATEFIRST设置(比如SQL Server默认周日为一周第一天)。如果你的财周和日历周规则一致,直接用这个即可。 - 自定义财周规则:如果你的财年起始日期不是1月1日(比如财年从7月1日开始),需要先对日期做偏移处理。示例中
DATEADD(MONTH, 6, PRODUCTION_DATE)把日期提前6个月,这样7月1日会被转换为1月1日,此时取周数就是财周数,你可以根据实际财年起始调整偏移的月份数。 - 原查询的所有字段和筛选条件都完整保留,只是新增了
FISCAL_WEEK列。
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

