需求比较简单:获取日期(日期会变)上个月的25号
第一种解决思路:
- 已有日期减去一个月得到年月日
- 获取年份
- 获取 月份
- 拼接指定时间
日期减去一个月
select DATEADD(MONTH,-1,GETDATE())
获取年
SELECT YEAR(DATEADD(MONTH,-1,GETDATE()))
获取月
SELECT MONTH(DATEADD(MONTH,-1,GETDATE()))
拿年月日进行拼接:
select cast(YEAR(DATEADD(month,-1,getdate())) as varchar)+'-'+cast(MONTH(DATEADD(month,-1,getdate())) as varchar)+'-25'
结果:
2020-8-25
第二种解决思路:
- 日期减去一个月
- 获取 年月
- 拼接指定时间
获取 年月
SELECT CONVERT(VARCHAR(7),DATEADD(month,-1,getdate()),120)
结果如下:
2020-08
再拼接指定日期
SELECT CONVERT(VARCHAR(7),DATEADD(month,-1,getdate()),120)+'-25'
结果 :
2020-08-25
第二种比第一种更简单,因为第一种还要进行转换。