Zero è 01 gen 1900 in SQL, quindi puoi usare questo:
DATEADD(day, @dayval-1,
DATEADD(month, @monthval-1,
DATEADD(year, @yearval-1900, 0)
)
)
Modifica, febbraio 2018
Come dice l'altra risposta, da SQL Server 2012 (rilasciato dopo la risposta originale) possiamo usare DATEFROMPARTS
SELECT DATEFROMPARTS (@yearval, @monthval, @dayval)