繁体   English   中英

从一个月减去一个月

[英]Subtract month from yearmonth

在SQL中,我有一个从YYYYMM值中减去一个月的标准。 请帮助我。 我能够在下面得到答案

select 201608 - 1;

但是当它是01个月时,它不起作用。

请帮助我,如果没有检查01个月的条件!

我也经历了DATADD和DATEDIFF函数,但无法按预期获得结果

Select DateAdd(MM,-1,cast(cast(201608 as varchar(10))+'01' as date))

返回2016-07-01的日期

SQL包含日期操作函数。 使用那些:

SELECT DATEDIFF(DAY, DATEADD(day, -1, @dateToCheck), GETDATE())

或者,您可以使用一些数学将int转换为base 12 int,减去month并返回原始编码。

select d, m, res=(dd/12)*100 + dd%12 + 1
from (
  select *, (d/100)*12 + d%100  - 1 - m as dd
  from ( --sample data, m = months to substract
     values 
      (201608, 10), (201608, 2), (201601, 1), (201601, 12)
    ) t(d,m) 
  ) t

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM