SQL - Fechas Formato Juliana

 
Vista:

Fechas Formato Juliana

Publicado por Pablo (29 intervenciones) el 21/07/2005 22:36:31
Les pido si me pueden indicar como convertir en SQL2000 un campo de fecha tipo juliana a fecha tipo gregoriana.
Desde ya muchas gracias.
Pablo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Fechas Formato Juliana

Publicado por Isaías Islas (5072 intervenciones) el 21/07/2005 23:45:16
declare @Julian int, @Year int, @DayInYear int, @Gregorian datetime
select @Julian = 19600407

select @Year = @Julian / 1000
select @DayInYear = @Julian - 1000 * @Year

select @Gregorian = convert(datetime, 'Jan 1 ' + str(@Year))
select @Gregorian = DateAdd (d, @DayInYear, @Gregorian)

select Gregorian = @Gregorian

-- Para obtener la fecha JULIANA
declare @DiasJuliano int, @Gregoriano datetime, @SinDias datetime
select @Gregoriano = '20030418' --108
select @SinDias = str(year(@Gregoriano))
select @DiasJuliano = datediff(d, @SinDias, @Gregoriano)
select @DiasJuliano + 1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Fechas Formato Juliana

Publicado por Pablo (29 intervenciones) el 22/07/2005 13:41:53
El string que me pasaste para obtener la fecha en juliana funciona bien, pero el que obtiene la fecha en formato gregoriano a partir de una juliana me da el siguiente error:

Server: Msg 241, Level 16, State 1, Line 7
Syntax error converting datetime from character string.

Sabes como puedo solucionarlo?

Muchas gracias.

Pablo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Fechas Formato Juliana

Publicado por Liliana (426 intervenciones) el 22/07/2005 15:52:42
Hola Pablo,
Y con el permiso de Isaías.
Me parece que:

select @Julian = 19600407 -- debería ser 1960407

o en

select @Year = @Julian / 1000
select @DayInYear = @Julian - 1000 * @Year

habría que reemplazar 1000 por 10000

Cualquiera de las dos opciones soluciona el problema.
Saludos, Liliana.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Fechas Formato Juliana

Publicado por Pablo (29 intervenciones) el 22/07/2005 16:04:43
Buen día Liliana, no funciona correctamente ya que por ejemplo hoy 22/07/2005 en juliana es 105203, debe haber algo que no esta bien, probalo y vas a ver.

Bueno, de todas maneras muchas gracias y sldos.

PABLO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Fechas Formato Juliana

Publicado por Liliana (426 intervenciones) el 22/07/2005 16:16:04
Pablo,
¿podés pasarme la función que estás usando para obtener el valor 105203?
Con la que yo tengo, solo consigo 203, por eso la función inversa necesita que le pongas el año adelante, ej: 2005203, con ese valor en la variable, funciona, te devuelve el día de hoy.
Pero como estamos trabajando con funciones diferentes, si me pasás la que usás vos, tal vez le encuentre la vuelta.
Liliana.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Fechas Formato Juliana en vb

Publicado por JAVIER ANAYA (1 intervención) el 25/07/2008 19:32:34
dime q es exacatamente lo que necesitas hacer y te puedo ayudar porque tambien batalle demaciado saludos bye
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Fechas Formato Juliana en vb

Publicado por juan (1 intervención) el 05/01/2009 15:30:30
ESTAN TODOS MAL, ESO NO FUNCIONA PARA NADA
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Fechas Formato Juliana en vb

Publicado por Mk (1 intervención) el 21/03/2012 19:58:50
Yo hice esto en sQL . . .

select datediff(day, convert(datetime, '01/01/' + convert(varchar(4), datepart(year, getdate()) )), getdate()) + 1

Si hoy es 21 de marzo . . . el dia juliano corresponde 81

Lo acabo de fumar, la reversa aun no lo realizo porque no lo necesito . . . quizas como pasatiempo, lo intentare. . . .
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Fechas Formato Juliana

Publicado por Fabian (1 intervención) el 09/08/2016 20:18:59
Tarde pero Seguro en SQL Server jeje, metes la juliana en formato AAAADDD



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Create function dbo.JulNorm(@prmFecha varchar(7))
returns  varchar(8)
as
Begin
 
	declare @wpAnio varchar(4)
	declare @wpDiasFecha smallint
 
	declare @wpMes smallint
	declare @wpDiasMes smallint
	declare @wpDiasAcumulados smallint
	declare @wpContador integer
 
	set @wpContador = 1
 
	declare @wpFechaTotal varchar(8)
 
	Set @wpMes = 1
	set @wpDiasAcumulados = 0
	set @wpFechaTotal=''
	set @wpAnio = Left(@prmFecha,4)
	set @wpDiasFecha = convert(int,right(@prmFecha,3))
 
	while @wpFechaTotal = '' and @wpContador < 14
	Begin
 
		select @wpDiasMes = convert(smallint, right(convert(varchar,dateadd(S,-1,dateadd(mm, datediff(m,0,@wpAnio + right('00'+convert(varchar,@wpMes),2) + '01')+1,0)),112),2))
 
		if @wpDiasFecha - @wpDiasAcumulados - @wpDiasMes > 0
		Begin
 
			Set @wpDiasAcumulados = @wpDiasAcumulados + @wpDiasMes
 
			set @wpMes = @wpMes + 1
		End
		else
			set @wpFechaTotal = @wpAnio + right('00' + convert(varchar,@wpMes),2) + right('00' + convert(varchar,(@wpDiasFecha - @wpDiasAcumulados)),2)
 
		set @wpContador = @wpContador + 1
 
	End
 
	if @wpFechaTotal = ''
		set @wpFechaTotal = convert(varchar,@wpMes) + ' MESES'
 
	Return @wpFechaTotal
 
End

y la puedes probar de la siguiente manera

1
Select dbo.JulNorm('2016040')


Espero que a alguien le sea útil.

atte Fabían Rodriguez ([email protected])
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar