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

如何基于GETDATE()函数获取上月YYYYMM格式的整数型值

SQL日期处理:变量赋值与UPDATE字段转换实现方案

我来帮你搞定对应的SQL代码实现,完全匹配你的需求细节:

1. 变量声明与当前日期获取

首先声明INT类型的变量@SETMONTH,并通过GETDATE()获取当前日期,转换为DATE类型后赋值给[Current_Date]:

DECLARE @SETMONTH INT 
-- 为[Current_Date]赋值
SELECT CONVERT(DATE, GETDATE()) AS [Current_Date]

2. 为@SETMONTH赋值(1/30/2019 → 201912)

针对当前日期1/30/2019,我们需要得到上一年12月的YYYYMM格式整数。这里提供两种兼容不同SQL Server版本的实现方式:

  • 方法1(SQL Server 2012+适用):利用DATEADD减去一个月,再通过FORMAT格式化后转成整数
    SET @SETMONTH = CAST(FORMAT(DATEADD(MONTH, -1, GETDATE()), 'yyyyMM') AS INT)
    
  • 方法2(全版本兼容):通过YEAR和MONTH函数手动计算年份和月份,拼接成目标整数
    SET @SETMONTH = (YEAR(GETDATE()) - CASE WHEN MONTH(GETDATE()) = 1 THEN 1 ELSE 0 END) * 100 + 12
    
    两种方法对1/30/2019的场景,最终都会得到201912这个结果。

3. UPDATE语句中转换日期并赋值(1/30/2020 → 201912)

要把日期1/30/2020转换为201912并赋值给Table1的Model_Month字段,同样可以沿用上面的逻辑,直接嵌入UPDATE语句:

  • 方法1(SQL Server 2012+适用)
    UPDATE Table1 
    SET Model_Month = CAST(FORMAT(DATEADD(MONTH, -1, '2020-01-30'), 'yyyyMM') AS INT)
    
  • 方法2(全版本兼容)
    UPDATE Table1 
    SET Model_Month = (YEAR('2020-01-30') - 1) * 100 + 12
    
    因为目标日期是1月,所以直接年份减1再加上12即可,最终都会给Model_Month赋值为201912。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 12:22:28