2014-09-25 94 views
2

我想弄清楚一些优雅的代码来动态声明变量类型。例SQL我可以声明基于另一个变量的变量数据类型

Declare @DateType INT = 2 
--When DateType = 2 Then Fiscal Week Else Specific Date 
CASE WHEN @DateType = 2 THEN DECLARE @BeginDate INT ELSE DECLARE @BeginDate DATE 

或者像这样

IF @DateType <> 2 
BEGIN 
DECLARE @DateRangeStart DATE 
DECLARE @DateRangeEnd DATE 
END 
IF @DateType = 2 
BEGIN 
DECLARE @DateRangeStart INT 
DECLARE @DateRangeEnd INT 
END 

因此,像什么那些正在尝试做的,但工程。有任何想法吗?提前致谢。

+1

你为什么要这样呢? – Horaciux 2014-09-25 19:28:03

+0

因此,我在SSRS中的最终用户可以选择为报告输入自定义日期范围或选择会计周,月等。 – ScholarYoshi 2014-09-25 19:29:47

+2

我会使用'sql_variant'并相应地@datetype。但是我需要查看代码的用法来评估furder的实现 – Horaciux 2014-09-25 19:33:01

回答

1

不是真正的答案,太多的评论

DECLARE @DateType int 

DECLARE @DateRangeStart sql_variant 

SET @DateRangeStart=8 

IF @DateType <> 2 
BEGIN 
select convert(int,@DateRangeStart) 
END 
IF @DateType = 2 
BEGIN 
select convert(date,@DateRangeStart) 
END