HGETZ: Cómo almacenar la hora universal coordinada actual en un campo de fecha-hora

Cómo:

Idiomas disponibles: informes, Maintain

HGETZ proporciona la hora universal coordinada actual (hora UTC/GMT, frecuentemente conocida como hora Z). UTC es el estándar de horario civil principal por el que se rigen los relojes y el tiempo.

Este valor es devuelto en el formato de fecha-hora deseado. Si los valores milisegundo o microsegundo no están disponibles en su entorno operativo, la función devuelve el valor cero para estos componentes.


Principio de página

x
Sintaxis: Cómo Almacenar la fecha y hora universal actual en un campo de fecha-hora
HGETZ(length, output)

donde:

length

Número entero

Es la longitud del valor devuelto de fecha-hora. Los valores válidos son:

  • 8 indica un valor de hora que incluye milisegundos.
  • 10 indica un valor de hora que incluye microsegundos.
  • 12 indica un valor de hora que incluye nanosegundos.
output

Fecha-hora

El valor de fecha-hora devuelto. Puede tratarse de un campo que contenga el resultado o del formato del valor de salida, entre comillas simples. El formato debe ser de fecha-hora (datos de tipo H).



Ejemplo: Cómo almacenar la fecha y la hora universal actual en un campo de fecha-hora (Reporting)

HGETZ guarda la fecha y la hora universal actual en DT2:

TABLE FILE VIDEOTRK
PRINT CUSTID AND COMPUTE
DT2/HYYMDm = HGETZ(10, 'HYYMDm');
WHERE CUSTID GE '2000' AND CUSTID LE '3000';
END

La salida es:

  CUSTID  DT2                  
  ------  ---                        
  2165    2015/05/08 14:43:08.740000
  2187    2015/05/08 14:43:08.740000
  2280    2015/05/08 14:43:08.740000
  2282    2015/05/08 14:43:08.740000
  2884    2015/05/08 14:43:08.740000


Ejemplo: Cómo calcular la zona horaria actual

La zona horaria puede calcularse como una diferencia positiva o negativa respecto de GMT. Los lugares situados al oeste del meridiano primario tienen una diferencia negativa. La siguiente solicitud emplea la función HGETC para recuperar la hora local, y la función HGETZ, para la hora GMT. La función HDIFF calcula el número de límites entre ambas, en minutos. La zona se halla dividiendo los minutos entre 60:

DEFINE FILE EMPLOYEE
LOCALTIME/HYYMDS = HGETC(8, LOCALTIME);
UTCTIME/HYYMDS = HGETZ(8, UTCTIME);
MINUTES/D4= HDIFF(LOCALTIME, UTCTIME, 'MINUTES', 'D4');
ZONE/P3 = MINUTES/60;
END
TABLE FILE EMPLOYEE
PRINT EMP_ID NOPRINT OVER
LOCALTIME  OVER
UTCTIME OVER
MINUTES OVER
ZONE
IF RECORDLIMIT IS 1
END

La salida es:

  LOCALTIME  2015/05/12 12:47:04
  UTCTIME    2015/05/12 16:47:04
  MINUTES                   -240
  ZONE                        -4

WebFOCUS