0

是否可以在不必使用 DateAdd 或不必计算日期差的情况下修改日期的日期部分?

SET @ReturnDate = '5/16/2012'

SET @ModifyDay = 20

只修改1620

结果应该是5/20/2012

这样做的原因是我正在将 vb 代码转换为存储过程:

    Dim InvDate_Day_of_Month As Integer = CInt(Day(InvDate))
    PaymentDate = DateAdd(DateInterval.Month, 1, InvDate)
    PaymentDate = New Date(PaymentDate.Year, PaymentDate.Month, DayofTheMonth)
4

2 回答 2

2
SET @ReturnDate = @ReturnDate + (@ModifyDay - DATEPART(day, @ReturnDate))
于 2012-05-08T19:01:36.080 回答
1

如果您只是想在日期上添加 4 天,您可以直接添加 4:

DECLARE @ReturnDate DATETIME;
SET @ReturnDate = '5/16/2012'

SELECT @ReturnDate, @ReturnDate + 4

这将选择 2012-05-16 00:00:00.000 和2012-05-20 00:00:00.000

于 2012-05-08T19:12:05.370 回答