27 may 2012

Convertir Fecha Juliana a Fecha Gregoriana(Normal o Comun) con SQL Server

Cuando se trata de manejar fechas en bases de datos es  importante saber con que tipo de datos vamos a  trabajar, ya sea con date time o small date's los campos deben ser previstos en la etapa del diseño de los sistemas. Sin embargo cuando adquirimos software de terceros nos podemos encontrar con algunas sorpresas como ocurre en el JDE este ERP maneja las fechas Julianas es decir YYYDDD donde los primeros tres digitos son para el AÑO y las ultimas tres para el dia del año.  La fecha gregoriana es la mas usada en los paises y sobre todo en la actualidad. Por eso es importante obtener la fecha con formato conocido..., bueno vamos directo al codigo.

// codigo fuente

SELECT TOP 1000 [Fecha]
      ,CASE SUBSTRING(Fecha, 2, 2)
  WHEN '11' THEN DATEADD(day, CAST(SUBSTRING(Fecha, 4, 3) AS INT) -1, '2011-01-01')  
  WHEN '12' THEN DATEADD(day, CAST(SUBSTRING(Fecha, 4, 3) AS INT) -1, '2012-01-01')   
 END AS FECHA_NORMAL
  FROM tbl_prueba 
 
 
Ojo antes de ejecutar este codigo debemos conocer los años de la informacion que esta en nuestra tabla, en mi caso tenia informacion del 2011 y 2012. Espero les sirva Saludos, y Comenten!! :P

No hay comentarios.: