No SQL Server 2012+, você pode usar
datefromparts()
:select datefromparts(@year, @month, @day)
Em versões anteriores, você pode converter uma string. Aqui está um método:
select cast(cast(@year*10000 + @month*100 + @day as varchar(255)) as date)