sql-server - operaciones - obtener el dia de una fecha sql
SQL Server: convertir((int) año,(int) mes,(int) día) a Datetime (4)
Posible duplicado:
Crear una cita con T-SQL.
Tengo una tabla de datos que almacena cada año, mes y día como ints:
year | month | day
2009 | 1 | 1
2008 | 12 | 2
2007 | 5 | 5
Necesito convertirlo en un valor de fecha y hora, porque necesito usarlo en una fecha y hora entre operaciones. ¿Cómo podría hacer esto?
Para ser independiente de la configuración de idioma y configuración regional, debe usar el formato ISO 8601 YYYYMMDD
; esto funcionará en cualquier sistema SQL Server con cualquier configuración regional y de idioma 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)
Puede convertir sus valores en una fecha y hora "decimal" y convertirlos luego en una columna de fecha y hora real:
select cast(rtrim(year *10000+ month *100+ day) as datetime) as Date from DateTable
Vea here también para más información.
Solución de fecha y hora pura, no depende del idioma o DATEFORMAT, sin cadenas
SELECT
DATEADD(year, [year]-1900, DATEADD(month, [month]-1, DATEADD(day, [day]-1, 0)))
FROM
dbo.Table
SELECT CAST(CAST(year AS varchar) + ''/'' + CAST(month AS varchar) + ''/'' + CAST(day as varchar) AS datetime) AS MyDateTime
FROM table