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.
HYYWD(dtvalue, output)
onde:
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.
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:
É o ano com quatro dígitos.
É o número da semana com dois dígitos (01 a 53).
É 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.
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
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 |