DATEMOV: Cómo cambiar la fecha a un punto significativo

Cómo:

Idiomas disponibles: informes, Maintain

La función DATEMOV cambia la fecha a un punto significativo del calendario.

Puesto que Dialogue Manager interpreta la fecha como alfanumérica o numérica, y DATEMOV requiere la presencia de una fecha estándar almacenada como desplazamiento de la fecha base, evite utilizar DATEMOV con Dialogue Manager, a menos que primero convierta la variable utilizada como fecha de entrada para un desplazamiento de la fecha base.

Para más información, consulte Cómo llamar a una función desde un comando de Dialogue Manager

DATEMOV sólo funciona con fechas que incluyan todos los componentes.


Principio de página

x
Sintaxis: Cómo Cambiar una fecha a un punto significativo
DATEMOV(date, 'move-point')

donde:

date

Fecha

Es la fecha que se va a cambiar. Debe ser una fecha de formato de componente completo (por ejemplo, MDYY o YYJUL).

move-point

Alfanumérico

Es el punto significativo al que se cambia la fecha, entre comillas simples. Al introducir un punto no válido, se obtiene un código de retorno de cero. Los valores válidos son:

EOM es el final del mes.

BOM es el principio del mes.

EOQ es el final del trimestre.

BOQ es el principio del trimestre.

EOY es el final del año.

BOY es el principio del año.

EOW es el final de la semana.

BOW es el principio de la semana.

NWD es el próximo día de la semana.

NBD es el próximo día laborable.

PWD es el día anterior de la semana.

PBD es el día laborable anterior.

WD- es un día de la semana o anterior.

BD- es un día laborable o anterior.

WD+ es un día de la semana o posterior.

BD+ es un día laborable o posterior.

Los cálculos de días laborables se ven afectados por las configuraciones de los parámetros BUSDAYS y HDAY.

Nota: DATEMOV no usa un argumento output, sino que emplea el formato del argumento date para el resultado. Siempre que el resultado sea una fecha de componente completo, sólo podrá asignarse a un campo de fecha de componente completo o a un campo de número entero.



Ejemplo: Cómo determinar los puntos significativos de una fecha (Lenguaje de informes)

El parámetro BUSDAYS establece como días laborables el lunes, martes, miércoles y jueves. DATECVT convierte las fecha legacy HIRE_DATE al formato de fecha YYMD y proporciona opciones de visualización de fechas. A continuación, DATEMOV determina los puntos significativos de HIRE_DATE.

SET BUSDAY = _MTWT__
TABLE FILE EMPLOYEE
PRINT
COMPUTE NEW_DATE/YYMD = DATECVT(HIRE_DATE, 'I6YMD', 'YYMD'); AND
COMPUTE NEW_DATE/WT = DATECVT(HIRE_DATE, 'I6YMD', 'WT'); AS 'DOW' AND
COMPUTE NWD/WT = DATEMOV(NEW_DATE, 'NWD'); AND
COMPUTE PWD/WT = DATEMOV(NEW_DATE, 'PWD'); AND
COMPUTE WDP/WT = DATEMOV(NEW_DATE, 'WD+'); AS 'WD+' AND
COMPUTE WDM/WT = DATEMOV(NEW_DATE, 'WD-'); AS 'WD-' AND
COMPUTE NBD/WT = DATEMOV(NEW_DATE, 'NBD'); AND
COMPUTE PBD/WT = DATEMOV(NEW_DATE, 'PBD'); AND
COMPUTE WBP/WT = DATEMOV(NEW_DATE, 'BD+'); AS 'BD+' AND
COMPUTE WBM/WT = DATEMOV(NEW_DATE, 'BD-'); AS 'BD-' BY LAST_NAME NOPRINT
HEADING
"Examples of DATEMOV"
"Business days are Monday, Tuesday, Wednesday, + Thursday "
" "
"START DATE.. | MOVE POINTS..........................."
WHERE DEPARTMENT EQ 'MIS';
END

La salida es:

Examples of DATEMOV                                      
Business days are Monday, Tuesday, Wednesday, + Thursday 
                                                         
START DATE.. | MOVE POINTS...........................    
NEW_DATE    DOW  NWD  PWD  WD+  WD-  NBD  PBD  BD+  BD-  
--------    ---  ---  ---  ---  ---  ---  ---  ---  ---  
1982/04/01  THU  FRI  WED  THU  THU  MON  WED  THU  THU  
1981/11/02  MON  TUE  FRI  MON  MON  TUE  THU  MON  MON  
1982/04/01  THU  FRI  WED  THU  THU  MON  WED  THU  THU  
1982/05/01  SAT  TUE  THU  MON  FRI  TUE  WED  MON  THU  
1981/07/01  WED  THU  TUE  WED  WED  THU  TUE  WED  WED  
1981/07/01  WED  THU  TUE  WED  WED  THU  TUE  WED  WED  


Ejemplo: Cómo determinar el final de la semana (Lenguaje de informes)

DATEMOV determina el final de la semana de cada fecha situada en HIRE_DATE y guarda el resultado en EOW:

TABLE FILE EMPLOYEE
PRINT FIRST_NAME AND
COMPUTE NEW_DATE/YYMDWT = DATECVT(HIRE_DATE, 'I6YMD', 'YYMDWT'); AND
COMPUTE EOW/YYMDWT = DATEMOV(NEW_DATE, 'EOW');
BY LAST_NAME
WHERE DEPARTMENT EQ 'PRODUCTION';
END

La salida es:

LAST_NAME     FIRST_NAME  NEW_DATE          EOW
---------     ----------  --------          ---
BANNING       JOHN        1982 AUG  1, SUN  1982 AUG  6, FRI
IRVING        JOAN        1982 JAN  4, MON  1982 JAN  8, FRI
MCKNIGHT      ROGER       1982 FEB  2, TUE  1982 FEB  5, FRI
ROMANS        ANTHONY     1982 JUL  1, THU  1982 JUL  2, FRI
SMITH         RICHARD     1982 JAN  4, MON  1982 JAN  8, FRI
STEVENS       ALFRED      1980 JUN  2, MON  1980 JUN  6, FRI


Ejemplo: Cómo determinar el final de la semana (Maintain)

DATEMOV determina el final de la semana de cada fecha:

MAINTAIN
COMPUTE X/YYMDWT='20020717';
COMPUTE Y/YYMDWT=DATEMOV(X, 'EOW', Y);
TYPE "<<X    <<Y  END OF WEEK "
END

El resultado es:

2002/07/17, WED   2002/07/19, FRI END OF WEEK

Information Builders