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

SQL如何将date类型日期输出为YYYYMM格式而非默认yyyy-mm-dd格式

问题修复方案

原有日期计算逻辑无需调整,date类型存储的是时间戳值,默认输出格式由数据库环境配置决定,要输出YYYYMM格式的结果,只需在查询输出阶段做格式转换即可。

通用兼容写法(支持所有SQL Server版本)

使用内置CONVERT函数配合112样式码实现,该写法不受系统区域、语言配置影响,稳定性最高,适合生产环境使用:

declare @five date, @fiveend date
set @five = dateadd(year,-5,datefromparts(year(getdate()),1,1))
set @fiveend = datefromparts(year(getdate()),12,1)

-- 输出YYYYMM格式结果
select convert(varchar(6), @fiveend, 112) as fiveend_yyyymm
select convert(varchar(6), @five, 112) as five_yyyymm

实现逻辑:样式码112对应ISO标准日期格式,会将日期转为固定8位长度的YYYYMMDD字符串,截取前6位即可得到目标YYYYMM格式。

高版本简化写法(支持SQL Server 2012及以上)

如果数据库版本满足要求,可以直接用FORMAT函数指定格式串,写法更简洁:

declare @five date, @fiveend date
set @five = dateadd(year,-5,datefromparts(year(getdate()),1,1))
set @fiveend = datefromparts(year(getdate()),12,1)

select format(@fiveend, 'yyyyMM') as fiveend_yyyymm
select format(@five, 'yyyyMM') as five_yyyymm

注意:大数据量查询场景下优先选择CONVERT写法,FORMAT函数性能相对较低。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 17:54:28