Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/11/2014, 11:59
Avatar de catpaw
catpaw
 
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años, 7 meses
Puntos: 23
concatenar campo año, campo mes, campo dia, convertirlo en fecha y obtener diferencia

que tal forer@s:

veran, intento sacar la diferencia de dias entre dos fechas pero para esto necesito hacer los siguientes movimientos antes:

tengo 6 campos int:

anio_hasta
mes_hasta
dia_hasta
anio_desde
mes_desde
dia_desde

lo que tengo hacer es concatenarlos no? bueno pues hago esto:

anio_hasta+mes_hasta+dia_hasta as hasta
anio_desde+mes_desde+dia_desde as desde

ejemplo:

anio_hasta 2010
mes_hasta 1
dia_hasta 26

y pasa que obtengo :

hasta 2037

en lugar de concatenar lo esta sumando

despues intento ya hacerlo directo:

convert(datetime, anio_hasta+mes_hasta+dia_hasta)

y obtengo:

1905-07-15 00:00:00.000

una fecha loca

entonces pense en primero convertir a char los campos y luego concatenarlos:

cast(anio_hasta as CHAR(4))+cast(mes_hasta as CHAR(2))+cast(dia_hasta as CHAR(2))

y obtengo:

20108 3

va mejorando, pero ahora por ejemplo el dia que es 3 necesito que sea 03 no?
el caso es que cuando intento convertirlo a fecha me sale un error:

convert(datetime,cast(anio_hasta as CHAR(4))+cast(mes_hasta as CHAR(2))+cast(dia_hasta as CHAR(2)))

este es el error:

Conversion failed when converting date and/or time from character string.

se que para sacar la diferencia necesito algo asi:

DATEDIFF (day, convert(datetime, hasta),convert(datetime, desde)) as dias

como le hago?

gracias