Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación, y ofrecer contenidos y publicidad de interés.
Al continuar con la navegación entendemos que se acepta nuestra política de cookies.
Iniciar sesión Cerrar
Correo:
Contraseña:
Entrar
Recordar sesión en este navegador
Iniciar sesiónIniciar sesiónCrear cuentaCrear cuenta

SQL - Fehas Juliana a Gregoriana

  Imprimir  
Vista:

Fehas Juliana a Gregoriana

Publicado por p@blo (29 intervenciones) el 17/08/2005 18:04:19
Como convierto en SQL2000 una fecha en Juliana a Gregoriana, la fecha Juliana esta con el siguiente formato:

105229 que es 17/08/2005

Gracias y Sldos.

P@blo
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:Fehas Juliana a Gregoriana

Publicado por Liliana (426 intervenciones) el 19/08/2005 18:18:58
Hola Pablo,
A ver si con una corrección que le hice a las consultas ahora va bien:

-- DE GREGORIANO A JULIANO
declare @DiasJuliano int, @Gregoriano datetime, @SinDias datetime
select @Gregoriano = '20050817'
select @SinDias = str(year(@Gregoriano))
select @DiasJuliano = datediff(d, @SinDias, @Gregoriano)
select Gregoriano = @Gregoriano, Juliano = ((year(@Gregoriano) - 1900) * 1000) + @DiasJuliano + 1
go

-- DE JULIANO A GREGORIANO
declare @Juliano int, @Año int, @DiasEnAño int, @Gregoriano datetime
select @Juliano = 105229
select @Año = (@Juliano / 1000) + 1900
select @DiasEnAño = @Juliano - ((@Juliano / 1000) * 1000)
select @Gregoriano = convert(datetime, str(@Año) + '0101')
select @Gregoriano = DateAdd (d, @DiasenAño, @Gregoriano)
select Juliano = @Juliano, Gregoriano = @Gregoriano - 1

Por supuesto puede hacerse en una sola línea, lo hice así a propósito para ir viendo la transformación de los datos.
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:Fehas Juliana a Gregoriana

Publicado por Pablo (29 intervenciones) el 19/08/2005 20:02:34
Hola Liliana,
Funciona perfecto, esto es para un solo registro y para que lo haga con todos los registros de una tabla como seria?

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

RE:Fehas Juliana a Gregoriana

Publicado por Liliana (426 intervenciones) el 19/08/2005 21:22:36
Suponiendo que tengas una tabla con la columna "Juliano", entonces:

SELECT Juliano,
Gregoriano = DateAdd (d, Juliano - ((Juliano / 1000) * 1000), convert(datetime, str((Juliano / 1000) + 1900 ) + '0101')) - 1
FROM tabla

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:Fehas Juliana a Gregoriana

Publicado por Pablo (29 intervenciones) el 19/08/2005 22:18:56
Liliana,
Hay algo que falta porque fijate que si en el supuesto campo juliano tengo:
105194 me da 2004/12/31 y deberia ser 2005/07/13 como me da en la consulta que me mandaste primero.
Tambien me da siempre 31/12 y lo unico que cambia es el año.

Bueno, espero tu respuesta y 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

RE:Fehas Juliana a Gregoriana

Publicado por Liliana (426 intervenciones) el 22/08/2005 14:40:02
Pablo,
Fijate, copiá y pegá esto en el QA, me da la fecha que corresponde:

declare @Juliano int
select @Juliano = 105194
SELECT @Juliano,
Gregoriano = DateAdd (d, @Juliano - ((@Juliano / 1000) * 1000), convert(datetime, str((@Juliano / 1000) + 1900 ) + '0101')) - 1

Resultado:
Gregoriano
----------- ------------------------------------------------------
105194 2005-07-13 00:00:00.000
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:Fehas Juliana a Gregoriana

Publicado por p@BLO (29 intervenciones) el 22/08/2005 15:08:16
Buen día Liliana,

Asi funciona bien pero necesito que lo haga para toda la tabla, entonces al poner por ejemplo:

SELECT ICDICJ,
Gregoriano = DateAdd (d, icdicj - ((icdicj / 1000) * 1000), convert(datetime, str((icdicj / 1000) + 1900 ) + '0101')) - 1
FROM PRODDTA.F0011

Donde el campo ICDICJ es el juliano, es que pasa lo que te comente en el correo anterior, quizas deberia utilizar un cursor pero no se como hacerlo.

Desde ya muchas gracias.

Sldos.

P@blo
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:Fehas Juliana a Gregoriana

Publicado por Liliana (426 intervenciones) el 22/08/2005 15:19:06
Pablo,
Hago la prueba con una tabla que tiene solo la fecha en juliano.
Te lo copio.

Revisá por favor el contenido de tu dato ¿puede ser que haya algún problema en eso? la conversión me da bien con lo que yo pruebo.

create table #f0011 (ICDICJ int)
insert #f0011 select 105190
insert #f0011 select 105191
insert #f0011 select 105192
insert #f0011 select 105193
insert #f0011 select 105194
insert #f0011 select 105195
insert #f0011 select 105196
insert #f0011 select 105197
insert #f0011 select 105198
insert #f0011 select 105199
insert #f0011 select 105200
insert #f0011 select 105201
insert #f0011 select 105202
insert #f0011 select 105203
insert #f0011 select 105204
insert #f0011 select 105205
insert #f0011 select 105206
insert #f0011 select 105207
insert #f0011 select 105208
insert #f0011 select 105209

SELECT ICDICJ,
Gregoriano = DateAdd (d, icdicj - ((icdicj / 1000) * 1000), convert(datetime, str((icdicj / 1000) + 1900 ) + '0101')) - 1
FROM #f0011

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:Fehas Juliana a Gregoriana

Publicado por P@blo (29 intervenciones) el 22/08/2005 16:12:36
Liliana,

Es como decis vos, el tema es que el campo de la tabla que estoy consultando no es de tipo int sino que es numeric, como puedo convertirlo.

Muchas gracias y sldos.

P@blo
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:Fehas Juliana a Gregoriana

Publicado por P@blo (29 intervenciones) el 22/08/2005 16:33:01
Liliana,

Ya funciona, utilice la funcion cast para convertir el campo de numeric a int.

SELECT ICDICJ,
Gregoriano = DateAdd (d, cast(ICDICJ as int) - ((cast(ICDICJ as int) / 1000) * 1000), convert(datetime, str((cast(ICDICJ as int) / 1000) + 1900 ) + '0101')) - 1
FROM PRODDTA.F0011

Muchas gracias, de nuevo.

Sldos.

P@blo

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

RE:Fehas Juliana a Gregoriana

Publicado por ariel (1 intervención) el 06/11/2007 13:34:04
Liliana sos grosa me estaba volviendo loco y encontre esto!
Gracias yo tambien!!!
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:Fehas Juliana a Gregoriana

Publicado por Daniel (1 intervención) el 15/01/2013 16:57:23
Estimados,

Una pregunta relacionada al tema; Que otra función puedo usar en lugar de DATETIME, lo que pasa es que requiero que me convierta de juliano a gregoriano simple, es decir sin la hora, solo la fecha.
De antemano gracias y saludos !!
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:Fehas Juliana a Gregoriana

Publicado por Gerardo GRANGUIANO@FANDELI.COM.MX (7 intervenciones) el 08/05/2014 03:42:25
SE QUE ESTO NO DEBE IR AQUI PERO IGUAL LO HAGO XD
COMO SERIA ESTO PERO EN VBA , YA QUE TENGO EL MISMO DATO EJEMPLO 114032 DEBERIA DAR COMO RESULTADO 1 DE FEBRERO DEL 2014 , PERO TENGO ENTENDIDO QUE EN VBA ESA FECHA SERIA #02/01/2014# MM/DD/AAAA MES DIA AÑO, LO QUE QUIERO ES QUE SI ME DAN ESA FECHA EL VALOR RESULTANTE SEA 1 DE FEBRERO DE 2014,

POSDATA, APENAS ESTOY APRENDIENDO VBA, PERO ESE CODIGO ME AYUDARIA MUCHO EN MI TRABAJO
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