HYYWD: Como Obter o Número do Ano e da Semana de um Valor de Data-Hora

Como:

O número da semana exibido por HNAME e HPART pode ser o ano anterior ou posterior à data de entrada.

A função HYYWD retorna os número do ano e da semana de um valor data-hora específico.

A saída é editada para entrar em conformidade com o formato padrão ISO para datas com números de semana, yyyy-Sss-d.


Topo da página

x
Sintaxe: Como Retornar o número do ano e da semana de um valor de data-hora
HYYWD(dtvalue, output)

onde:

dtvalue

Data-hora

É o valor data-hora a ser editado, o nome de um campo data-hora que contém o valor ou uma expressão que resulta no valor.

saída

Alfanumérico

É o campo que contém o resultado ou o formato do valor de saída posto entre aspas simples.

O formato de saída deve possuir pelo menos dez caracteres. A saída se encontra no formato a seguir:

yyyy-Www-d

onde:

yyyy

É o ano com quatro dígitos.

ww

É o número da semana com dois dígitos (01 a 53).

d

É o dia de único dígito da semana (1 a 7). O valor d é relativo à definição WEEKFIRST atual. Se WEEKFIRST for 2 ou ISO2 (segunda), segunda será representada na saída como 1 e terça como 2.

Utilizando a função EDIT, você pode extrair os subcampos individuais a partir desta saída.



Exemplo: Como Retornar o Número do Ano e da Semana de um Valor de Data-Hora

A solicitação a seguir em relação à fonte de dados VIDEOTR2 chama HYYWD para converter o campo data-hora TRANSDATE no formato padrão ISO para datas com números de semana. WEEKFIRST é definido como ISO2, que produz uma numeração de semana padrão ISO:

SET WEEKFIRST = ISO2
TABLE FILE VIDEOTR2
SUM TRANSTOT QUANTITY
COMPUTE ISODATE/A10 = HYYWD(TRANSDATE, 'A10');
BY TRANSDATE
WHERE QUANTITY GT 1
END

A saída é:

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


Exemplo: Como Extrair um Componente de uma Data Exibida por HYYWD

A solicitação a seguir em relação à fonte de dados VIDEOTR2 chama HYYWD para converter o campo data-hora TRANSDATE no formato padrão ISO para datas com números de semana. Em seguida, utiliza a função EDIT paraextrair o componente da semana desta data. WEEKFIRST é definido como ISO2, que produz uma numeração de semana padrão 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

A saída é:

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