Servidor SQL: convertido ((int) año, (int) mes, (int) día) a Fecha y hora

Posible duplicado:
Crear una fecha con T-SQL

Tengo una tabla de datos que almacena el valor de cada año, mes y día como puntos:

year | month | day 2009 | 1 | 1 2008 | 12 | 2 2007 | 5 | 5 

Necesito convertirlo a valor de fecha y hora, porque necesito usarlo en una fecha y hora entre cada operación. ¿Cómo podría hacer esto?

Para ser independiente de los ajustes de idioma y configuración regional, debe usar el formato ISO 8601 YYYYMMDD ; esto funcionará en cualquier sistema de SQL Server con cualquier idioma y configuración regional vigente:

 SELECT CAST( CAST(year AS VARCHAR(4)) + RIGHT('0' + CAST(month AS VARCHAR(2)), 2) + RIGHT('0' + CAST(day AS VARCHAR(2)), 2) AS DATETIME) 

Solución de fecha y hora pura, no depende del lenguaje o DATEFORMAT, sin cadenas

 SELECT DATEADD(year, [year]-1900, DATEADD(month, [month]-1, DATEADD(day, [day]-1, 0))) FROM dbo.Table 

Puede convertir sus valores en un formato de fecha ‘Decimal’ y convertirlo luego en una columna de fecha y hora real:

 select cast(rtrim(year *10000+ month *100+ day) as datetime) as Date from DateTable 

Vea aquí también para más información.

 SELECT CAST(CAST(year AS varchar) + '/' + CAST(month AS varchar) + '/' + CAST(day as varchar) AS datetime) AS MyDateTime FROM table