Código SQL - Converter data Juliana para data Gregoriana

Veja nesse código como realizar a conversão de data no formato Juliana em data no formato Gregoriano e vice e versa. Confira o código SQL.

Converter data Juliana para data Gregoriana e vice e versa

Extraído do site: http://www.codigofonte.com.br

 

  1. CREATE FUNCTION dbo.RetornaDataJuliana(@Dia Int, @Mes Int, @Ano Int)    
  2. RETURNS INT  
  3. /*Retorna Data Juliana*/  
  4. AS
  5.   
  6. BEGIN
  7.     DECLARE @dtJuliana int  
  8.     SELECT @dtJuliana = (@Ano - 1) * 365 - @Ano/100 + @Ano/400 + (@Ano - 1 ) / 4   
  9.   
  10.         IF @Mes > 2 AND ( ( @Ano%100 <> 0 AND @Ano%4 = 0 ) OR @Ano%400 = 0 )   
  11.             SELECT @dtJuliana = @dtJuliana + 1   
  12.             SELECT @dtJuliana = @dtJuliana + 31 * ( @Mes - 1 ) + @Dia  
  13.   
  14.         IF ( @Mes > 2 )   
  15.             SELECT @dtJuliana = @dtJuliana - 3   
  16.         IF ( @Mes > 4 )    
  17.             SELECT @dtJuliana = @dtJuliana -  1         
  18.         IF ( @Mes > 6 )   
  19.             SELECT @dtJuliana = @dtJuliana - 1   
  20.         IF ( @Mes > 9 )   
  21.             SELECT @dtJuliana = @dtJuliana - 1   
  22.         IF ( @Mes > 11 )   
  23.             SELECT @dtJuliana = @dtJuliana - 1   
  24.   
  25.     RETURN @dtJuliana  
  26. END  
  27.   
  28.   
  29.   
  30. CREATE FUNCTION dbo.retornaDataGregoriana(@DataJuliana int)    
  31. RETURNS datetime   
  32. /*Retorna data Gregoriana a partir de data Juliana*/  
  33. AS
  34.   
  35. BEGIN
  36.     RETURN(DATEADD(DAY,@DataJuliana - 722815, '1/1/80'))   
  37. END  

 

Artigos relacionados