HYYWD: Cómo devolver el año y el número de la semana de un valor de fecha-hora

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.


Principio de página

x
Sintaxis: Cómo Devolver el año y el número de la semana de un valor fecha-hora
HYYWD(dtvalue, output)

donde:

dtvalue

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.

output

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:

yyyy

Es el año de cuatro dígitos.

ww

Es el número de la semana de dos dígitos (entre 01 y 53).

d

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.



Ejemplo: Cómo devolver el año y el número de la semana de un valor de fecha-hora

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


Ejemplo: Cómo extraer un componente de una fecha devuelta por HYYWD

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