Sql server 将间隔参数传递给SQL中的函数
我想创建一个函数,返回一个临时日期表,用于生成报告。我希望能够动态地指定表的间隔。下面是一个封装我的问题的函数 考虑:Sql server 将间隔参数传递给SQL中的函数,sql-server,Sql Server,我想创建一个函数,返回一个临时日期表,用于生成报告。我希望能够动态地指定表的间隔。下面是一个封装我的问题的函数 考虑: CREATE FUNCTION [dbo].[DateAdder] (@DateStart datetime, @increment int, @interval ?????) Returns datetime AS BEGIN Declare @Return datetime SELECT @Return = DATEADD(@interval, @increment, @D
CREATE FUNCTION [dbo].[DateAdder]
(@DateStart datetime,
@increment int,
@interval ?????)
Returns datetime
AS
BEGIN
Declare @Return datetime
SELECT @Return = DATEADD(@interval, @increment, @DateStart)
return @Return
END
有没有办法将“间隔”传递给此函数
(显然,我并不是想重写DATEADD
函数,我只是用这个例子来强调我的问题)
干杯 不能将参数作为DATExxx函数的间隔参数传递。最简单的方法可能是传递一个varchar,然后在CASE语句中复制DATExxx函数。例如:
SELECT @Return = CASE @interval
WHEN 'month' THEN DATEADD(month, @increment, @DateStart)
WHEN 'week' THEN DATEADD(week, @increment, @DateStart)
WHEN 'day' THEN DATEADD(day, @increment, @DateStart)
END
个人偏好——我永远记不起那些可爱的缩写,我总是把间隔完整地拼出来