在 SQL Server 中,我需要DATEADD
用另一个函数包装内置函数。
问题是我需要实现这种行为:
返回类型
返回数据类型是日期参数的数据类型[...]
例如,如果我传入 adatetime
作为参数,则DATEADD
返回 a datetime
。如果我传入 a date
,则DATEADD
返回 a date
。
以下示例始终返回datetime
...
create function add_months(@dt date, @interval int)
returns datetime
as
begin
return DATEADD(month, @interval, @dt)
end
如何在 SQL Server 中实现这一点?
(编辑)
语境
我正在执行从 informix 到 SQL Server 的数据库迁移。数据库部分不是这里的问题,代码才是。我们有数百个程序必须更改,因为其中嵌入了 SQL 查询。这是我试图避免使用的主要原因DATEADD(MONTH, 1, foo)
。这种自动转换虽然在大多数情况下很简单,但在某些情况下可能非常困难。使用 udf,我可以只替换 informix 函数的名称,而无需进行更深入的重构。