2014-09-25 149 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 
相關問題