Cómo: |
El número de la semana devuelto por HNAME y HPART puede pertenecer al año anterior o posterior a la fecha de entrada.
La función HYYWD devuelve el año y número de la semana de un valor de fecha-hora determinado.
La salida se edita para cumplir con el formato de estándar ISO para fechas con números de semana, yyyy-Www-d.
HYYWD(dtvalue, output)
donde:
Fecha-hora
Es el valor de fecha-hora que se va a editar, el nombre del campo fecha-hora que contiene el valor o una expresión que devuelve el valor.
Alfanumérico
Es el campo que contiene el resultado o el formato del valor de salida, entre comillas simples.
El formato de salida debe tener al menos 10 caracteres. La salida está en el siguiente formato:
yyyy-Www-d
donde:
Es el año de cuatro dígitos.
Es el número de la semana de dos dígitos (entre 01 y 53).
Es el día de la semana de un dígito (entre 1 y 7). El valor d es relativo al ajuste WEEKFIRST actual. Si WEEKFIRST es 2 o ISO2 (Lunes), el lunes aparece como 1 en la salida y el martes aparece como 2.
La función EDIT permite extraer los subcampos individuales de esta salida.
La siguiente solicitud emitida frente al origen de datos VIDEOTR2, llama a HYYWD para que convierta el campo de fecha-hora TRANSDATE al formato de estándar ISO, en fechas con números de semana. WEEKFIRST se establece en ISO2, produciendo una numeración de estándar ISO:
SET WEEKFIRST = ISO2 TABLE FILE VIDEOTR2 SUM TRANSTOT QUANTITY COMPUTE ISODATE/A10 = HYYWD(TRANSDATE, 'A10'); BY TRANSDATE WHERE QUANTITY GT 1 END
La salida es:
TRANSDATE TRANSTOT QUANTITY ISODATE --------- -------- -------- ------- 1991/06/24 04:43 16.00 2 1991-W26-1 1991/06/25 01:17 2.50 2 1991-W26-2 1991/06/27 02:45 16.00 2 1991-W26-4 1996/08/17 05:11 5.18 2 1996-W33-6 1998/02/04 04:11 12.00 2 1998-W06-3 1999/01/30 04:16 13.00 2 1999-W04-6 1999/04/22 06:19 3.75 3 1999-W16-4 1999/05/06 05:14 1.00 2 1999-W18-4 1999/08/09 03:17 15.00 2 1999-W32-1 1999/09/09 09:18 14.00 2 1999-W36-4 1999/10/16 09:11 5.18 2 1999-W41-6 1999/11/05 11:12 2.50 2 1999-W44-5 1999/12/09 09:47 5.18 2 1999-W49-4 1999/12/15 04:04 2.50 2 1999-W50-3
La siguiente solicitud emitida frente al origen de datos VIDEOTR2, llama a HYYWD para que convierta el campo de fecha-hora TRANSDATE al formato de estándar ISO, en fechas con números de semana. Después, utiliza la función EDIT para extraer el componente de semana de esta fecha. WEEKFIRST se establece en ISO2, produciendo una numeración de estándar ISO:
SET WEEKFIRST = ISO2 TABLE FILE VIDEOTR2 SUM TRANSTOT QUANTITY COMPUTE ISODATE/A10 = HYYWD(TRANSDATE, 'A10'); COMPUTE WEEK/A2 = EDIT(ISODATE, '$$$$$$99$$'); BY TRANSDATE WHERE QUANTITY GT 1 AND DATE EQ 1991 END
La salida es:
TRANSDATE TRANSTOT QUANTITY ISODATE WEEK --------- -------- -------- ------- ---- 1991/06/24 04:43 16.00 2 1991-W26-1 26 1991/06/25 01:17 2.50 2 1991-W26-2 26 1991/06/27 02:45 16.00 2 1991-W26-4 26
Information Builders |