Sql 不带DateAdd或DateDiff修改日期
是否可以在不必使用DateAdd或计算日期差的情况下修改日期的日期部分Sql 不带DateAdd或DateDiff修改日期,sql,sql-server,tsql,Sql,Sql Server,Tsql,是否可以在不必使用DateAdd或计算日期差的情况下修改日期的日期部分 SET @ReturnDate = '5/16/2012' SET @ModifyDay = 20 仅将16修改为20 结果应为2012年5月20日 原因是我正在将vb代码转换为存储过程: Dim InvDate_Day_of_Month As Integer = CInt(Day(InvDate)) PaymentDate = DateAdd(DateInterval.Month, 1, InvDate
SET @ReturnDate = '5/16/2012'
SET @ModifyDay = 20
仅将16
修改为20
结果应为2012年5月20日
原因是我正在将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天,您可以直接在日期上增加4天:
DECLARE @ReturnDate DATETIME;
SET @ReturnDate = '5/16/2012'
SELECT @ReturnDate, @ReturnDate + 4
这选择了
2012-05-1600:00.000和2012-05-2000:00:00.000如果您只想在日期上加4天,您可以在日期上加4天:
DECLARE @ReturnDate DATETIME;
SET @ReturnDate = '5/16/2012'
SELECT @ReturnDate, @ReturnDate + 4
这选择了
2012-05-1600:00.000和2012-05-2000:00:00.000如果您发布代码、XML或数据示例,请在文本编辑器中突出显示这些行,并单击编辑器工具栏上的“代码示例”按钮(
{}
),以精确地格式化和语法突出显示它!您对DATEADD
有什么看法?其他数据库提供了日期构造函数函数。在SQL Server中,最好的方法是使用字符串函数,例如:cast(替换(@ReturnDate,/16/,“/20/”)作为日期)。我使用vb代码,只是posted,但是为什么不使用DATEADD
和DATEDIFF
?如果发布代码、XML或数据示例,请在文本编辑器中突出显示这些行,然后单击“代码示例”编辑器工具栏上的按钮({}
),可以很好地格式化和语法突出显示它!您对DATEADD
有什么看法?其他数据库提供了日期构造函数函数。在SQL Server中,最好的方法是使用字符串函数,例如:cast(替换(@ReturnDate,/16/,“/20/”)作为日期)。我用vb代码代替,只是posted,但是为什么不使用DATEADD
和DATEDIFF
?