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

如何在SQL Server中获取格式为YYYYMMWW的年、月、周数组合值?

SQL 日期拼接为 yyyymmww / yyyy-mm-ww 格式实现方案

首先修正你原有查询的错误:datepart(wk,day(getdate()))写法有误,DATEPART计算周数的第二个参数需要传入完整日期值,仅传入DAY(getdate())会得到当月的日数字,计算出的周数不符合预期,需改为DATEPART(wk, GETDATE())。

1. 拼接为 yyyymmww 无分隔符格式

该写法兼容所有SQL Server版本,会自动为不足两位的月份、周数补前导0:

SELECT CONCAT(
    YEAR(GETDATE()),
    RIGHT(CONCAT('0', MONTH(GETDATE())), 2),
    RIGHT(CONCAT('0', DATEPART(WK, GETDATE())), 2)
) AS yyyymmww

2. 拼接为 yyyy-mm-ww 带横杠分隔符格式

同理兼容全版本,自动补前导0:

SELECT CONCAT(
    YEAR(GETDATE()),
    '-',
    RIGHT(CONCAT('0', MONTH(GETDATE())), 2),
    '-',
    RIGHT(CONCAT('0', DATEPART(WK, GETDATE())), 2)
) AS yyyy_mm_ww

若你使用SQL Server 2012及以上版本,可直接用FORMAT函数简化实现,无需手动处理补0逻辑:

  • 无分隔符版本:SELECT FORMAT(GETDATE(), 'yyyyMMww') AS yyyymmww
  • 带分隔符版本:SELECT FORMAT(GETDATE(), 'yyyy-MM-ww') AS yyyy_mm_ww

内容的提问来源于stack exchange,提问作者n00b data engineer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 12:24:05