Funciones DT: Cómo convertir un número entero en una fecha

Cómo:

Idiomas disponibles: informes, Maintain

xLas funciones DT convierten un número entero, que representa el número de días transcurridos desde 31 de diciembre de 1899, a la fecha correspondiente. Resultan útiles a la hora de efectuar operaciones aritméticas con una fecha convertida al número de días (para más información, consulte Funciones DA: Cómo convertir una fecha legacy en un número entero). Las funciones DT vuelven a convertir el resultado en una fecha.

Existen seis funciones DT; cada una transforma un número en una fecha de distinto formato.

Nota: Cuando USERFNS está establecido en LOCAL, las funciones DT sólo muestran una fecha de seis dígitos.


Principio de página

x
Sintaxis: Cómo Convertir un número entero en una fecha
						function(number, output)

donde:

function

Es uno de los siguientes:

DTDMY convierte un número en una fecha día-mes-año.

DTDYM convierte un número en una fecha día-año-mes.

DTMDY convierte un número en una fecha mes-día-año.

DTMYD convierte un número en una fecha mes-año-día.

DTYDM convierte un número en una fecha año-día-mes.

DTYMD convierte un número en una fecha año-mes-día.

number

Número entero

Es el número de días desde 31 de diciembre de 1899. El número queda truncado en un número entero.

output

I8xxx, donde xxx corresponde a la función DTxxx de la lista de arriba.

Es el nombre del campo que contiene el resultado o el formato del valor de salida entre comillas simples. El formato de salida depende de la función que se está utilizando.



Ejemplo: Cómo convertir un número entero en una fecha

DTMDY convierte el campo NEWF (convertido al número de días por DAYMD)a la fecha correspondiente y guarda el resultado en NEW_HIRE_DATE:

-* THIS PROCEDURE CONVERTS HIRE_DATE, WHICH IS IN I6YMD FORMAT,
-* TO A DATE IN I8MDYY FORMAT.
-* FIRST IT USES THE DAYMD FUNCTION TO CONVERT HIRE_DATE 
-* TO A NUMBER OF DAYS.
-* THEN IT USES THE DTMDY FUNCTION TO CONVERT THIS NUMBER OF
-* DAYS TO I8MDYY FORMAT
-*
DEFINE FILE EMPLOYEE
NEWF/I8 WITH EMP_ID = DAYMD(HIRE_DATE, NEWF);
NEW_HIRE_DATE/I8MDYY WITH EMP_ID = DTMDY(NEWF, NEW_HIRE_DATE);
END
TABLE FILE EMPLOYEE
PRINT HIRE_DATE NEW_HIRE_DATE
BY FN BY LN
WHERE DEPARTMENT EQ 'MIS'
END

La salida es:

FIRST_NAME  LAST_NAME        HIRE_DATE  NEW_HIRE_DATE
----------  ---------        ---------  -------------
BARBARA     CROSS             81/11/02     11/02/1981
DIANE       JONES             82/05/01     05/01/1982
JOHN        MCCOY             81/07/01     07/01/1981
MARY        GREENSPAN         82/04/01     04/01/1982
            SMITH             81/07/01     07/01/1981
ROSEMARIE   BLACKWOOD         82/04/01     04/01/1982

WebFOCUS