¿ Quieres imprimir esta página ? Volver a la página principal de Recursos iSeries AS400 ¿ Necesitas ayuda ? En pruebas
Recursos iSeries AS400. Compartiendo generamos conocimiento
Novedades en Recursos iSeries AS400
Últimas noticias del iSeries AS400
Funcion para convertir fecha juliana para usarse en codigo SQL

Categoría : Programación
Autor : Josue Ramirez Reyes
Título : Funcion para convertir fecha juliana para usarse en codigo SQL


Descripción del truco:
En la mayoria de los ERP comerciales usados para AS/400, las bases de datos, utilizan el formato juliano para la representacion de una fecha, es decir un dato numerico.
Pero cuando usted desea hacer una consulta, necesita saber el dato o de otra manera tener que convertirlo cada vez que lo accesa.
Lo cual representa un verdadero problema, he aqui una solucion.
Saludos.

1.- Necesitamos crear un miembro con el formato TXT. (Esto se convertira en una funcion utilizable desde cualquier codigo)
2.- Escriba el siguiente codigo:
CREATE FUNCTION JUL2DAT(fecha_jul DECIMAL(8,0))
RETURNS DATE
LANGUAGE SQL
CONTAINS SQL
NO EXTERNAL ACTION
SET OPTION DATFMT = *DMY, DATSEP = \'/\'
BEGIN
DECLARE fecret VARCHAR(10);
DECLARE fecyea CHAR(3);
DECLARE fecdia CHAR(3);
DECLARE intyea INTEGER;
DECLARE feccha CHAR(10);
DECLARE feccha2 DATE;
DECLARE fecret2 CHAR(20);
DECLARE largo INTEGER;

IF fecha_jul > 1 THEN
SET fecret = CHAR(fecha_jul);
SET fecret = TRIM(fecret);
SET largo = LENGTH(fecret);
IF largo = 5 THEN
SET fecyea = SUBSTR(fecret,1,2);
SET fecdia = SUBSTR(fecret,3,3);
ELSE
SET fecyea = SUBSTR(fecret,1,3);
SET fecdia = SUBSTR(fecret,4,3);
END IF;
SET intyea = 1900 + INTEGER(fecyea);
SET feccha = TRIM(CHAR(intyea)) || TRIM(fecdia);
SET feccha2 = DATE(TRIM(feccha));

ELSE

SET feccha2 = DATE(\'01/01/90\');

END IF;
RETURN feccha2;

END

3.- Grabe el miembro.
4.- Compilelo con el comando RUNSQLSTM y llene los parametros necesarios.
5.- Para comprobar que funcione, ejecute el comando STRSQL y desde la linea de comandos escriba la siguiente sentencia SQL:
SELECT JUL2DAT(campo_fecha juliana) FROM LIB/FILE <ENTER>
6.- Si logro ver la fecha convertida usted esta listo para usar una fecha juliana en comparaciones con una fecha tipo DATE.

NOTA: Esta funcion trasnforma la fecha a un formato DD/MM/YY, si desea otro formato, solo modifique el orden en el CONCAT.

Fecha 08-06-2005

Tienes algún truco que quieras compartir con todos los profesionales de Recursos iSeries AS400?. Envianoslo y si resulta seleccionado te enviaremos un vale de Amazon por valor de 50$

Comentarios de usuarios

Nombre:
Mail:
Comentario:
 

Subir a la parte superior de la web

Dossiers técnicos iSeries y AS400
- Dossier de seguridad
- Alta disponibilidad.
¿Buscas trabajo ?
Inscríbete en nuestra lista laboral y recibirás las ofertas de trabajo en tu buzón de correo electrónico.
Nuestros links preferidos
- Tendencias tecnologías de la información
Expertos en materías relacionadas con las tecnologías de la información, nos dan su punto de vista sobre las tendencias actuales y futuras
- Los últimos anuncios sobre hardware-software para iSeries AS400 realizados por IBM
- Freeware. Software gratuito para el iSeries AS400
- Utilidades para el iSeries AS400 realizadas por profesionales
- Documentos. Trucos e ideas para resolver tus problemas
- Manuales. Los manuales y links más interesantes del iSeries AS400

  Links patrocinados
  •  
  •  

[ Soy nuevo |   Profesionales |   AS qué |   Empresas |    Foros |   Recomiéndanos |    Productos ]
 
Recursos iSeries AS400. Es una web de: PUBLICACIONES HELP400, S.L. CIF:B-60-202827 Gran Vía de les Corts Catalanes, núm. 715, Entresuelo – 3ª - Barcelona - Tel.+34.932.310.049