在SQL存储过程中,我需要通过减去1个月来计算一个日期,并将日期设置为该月的第17天。
我可以减去一个月:
DATEADD(month,-1, loanFirstPmtDate)但不知道如何也把这一天定在17日。
如何在一条SQL语句中同时进行这两种计算?
示例:贷款首次支付日期=‘03/01/2019’减去1个月,并将日期设定为17 =‘02/17/2019’
发布于 2019-02-26 21:36:16
给定日期:
DECLARE @date datetime = CONVERT(date, GETDATE());-本月初:
SELECT DATEADD(DAY, 1-DAY(GETDATE()), @date);-上个月初-减去一个月:
SELECT DATEADD(MONTH, -1,
DATEADD(DAY, 1-DAY(GETDATE()), @date));-然后到上个月十七日,再加上16天:
SELECT DATEADD(DAY, 16, DATEADD(MONTH, -1,
DATEADD(DAY, 1-DAY(GETDATE()), @date)));这将适用于2008年及以上。2012年,你可以把它写得更短一点:
DECLARE @date datetime = DATEADD(MONTH, -1, GETDATE());
SELECT DATEFROMPARTS(YEAR(@date), MONTH(@date), 17);如果您这样做是为了搜索,而不是为了输出,我强烈建议调整日期范围参数值,而不是在loanFirstPmtDate列中应用D6操作数据。
https://dba.stackexchange.com/questions/230803
复制相似问题