【发布时间】:2017-03-30 00:31:09
【问题描述】:
我有一个接收 3 个参数的过程:
@startdate = '2017-01-01'
@interval = 'DD'
@duration = 5
我需要做的是根据上述内容输出一个新日期。 dateadd 不起作用,由于 @interval 不正确。
select dateadd(@interval, @duration, @startdate)
为 dateadd 指定的参数 1 无效。
任何人都可以指导我吗?
【问题讨论】:
-
只有一些变化,所以你可以这样做:
CASE @interval WHEN 'DD' THEN DATEADD(DD...顺便说一句,你将能够控制输入值。 -
你不能使用这样的参数。您必须使用动态 sql 或涵盖所有选项的 case 表达式。实际上,您应该避免使用这些快捷方式。为什么不拼出 Day 这样你就不必记住魔法密码了? sqlblog.com/blogs/aaron_bertrand/archive/2011/09/20/…
标签: sql sql-server tsql