-1
我試圖執行下面的代碼:是否可以在CTE中使用Declare?
;with cte as
(
select
convert(varchar(50), joiningdate, 101) as joindate
from
employeedetail
)
declare @dateuse varchar(200)=cte.joindate
select datediff(dd, @dateuse, GETDATE())
from cte
,但它顯示了一個錯誤:
Msg 156, Level 15, State 1, Line 909
Incorrect syntax near the keyword 'declare'.
我想用持有的joindate值可變,並根據返回的值。怎麼樣?
爲什麼不能你剛纔計算ie'with CTE爲選擇查詢(...)選擇DATEDIFF(DD,joindate ,getdate())從cte'? –
是的,我可以通過你的建議做到這一點,但我想通過使用變量 –
來做到這一點,但問題的確是:**爲什麼**你將看起來是DATE或DATETIME列的內容轉換爲「 VARCHAR(50)',然後你想在'DATEDIFF'函數中使用它 - 這使得**毫無意義**!只需將該列保留爲'DATE' /'DATETIME'並應用'DATEDIFF'即可。 –