Esta função retorna um valor correspondente ao carimbo de data/hora com o primeiro milissegundo do primeiro dia da semana do calendário que contém a date. O formato de saída padrão é o DateFormat definido no script.
A função weekstart() determina em qual semana a data cai. Em seguida, ela retorna um carimbo de data/hora, em formato de data, para o primeiro milissegundo daquela semana. O primeiro dia da semana é determinado pela variável de ambiente FirstWeekDay. No entanto, isso pode ser substituído pelo argumento first_week_day na função weekstart().
Argumentos
Argumento
Descrição
timestamp
A data ou o carimbo de data/hora a ser avaliado.
period_no
shift é um inteiro, em que o valor 0 indica a semana que contém a date. Os valores negativos no deslocamento indicam semanas precedentes e os valores positivos indicam semanas subsequentes.
first_week_day
Especifica o dia no qual inicia a semana. Se omitido, o valor da variável FirstWeekDay é usado.
Os valores possíveis first_week_day são 0 para segunda-feira, 1 para terça, 2 para quarta-feira, 3 para quinta-feira, 4 para sexta-feira, 5 para sábado e 6 para domingo.
Para obter mais informações sobre a variável de sistema, consulte FirstWeekDay.
Quando usar
A função weekstart() é comumente usada como parte de uma expressão quando o usuário deseja que o cálculo use a fração da semana decorrida até o momento. Por exemplo, ela pode ser usada se um usuário deseja calcular o total de salários ganhos pelos funcionários na semana até o momento.
Os exemplos a seguir pressupõem que:
SET FirstWeekDay=0;
Exemplos de funções
Exemplo
Resultado
weekstart('01/12/2013')
Retorna 01/07/2013.
weekstart('01/12/2013', -1 )
Retorna 11/31/2012.
weekstart('01/12/2013', 0, 1)
Retorna 01/08/2013.
Configurações regionais
A menos que especificado de outra forma, os exemplos neste tópico usam o seguinte formato de data: MM/DD/AAAA. O formato de data é especificado na instrução SET DateFormat no seu script de carregamento de dados. A formatação de data padrão pode ser diferente no seu sistema devido às suas configurações regionais e outros fatores. Você pode alterar os formatos nos exemplos abaixo para atender às suas necessidades. Ou pode alterar os formatos no seu script de carregamento para corresponder a esses exemplos. Para obter mais informações, consulte Modificando configurações regionais para aplicativos e scripts.
As configurações regionais padrão nos aplicativos são baseadas no perfil do usuário. Essas configurações de formato regional não estão relacionadas ao idioma exibido na interface do usuário do Qlik Cloud. O Qlik Cloud será exibido no mesmo idioma do navegador que você está usando.
Se quiser configurações ISO para semanas e números de semanas, certifique-se de ter o seguinte no script:
Set DateFormat ='YYYY-MM-DD';
Set FirstWeekDay =0; // Monday as first week day
Set BrokenWeeks =0; //(use unbroken weeks)
Set ReferenceDay =4; // Jan 4th is always in week 1
Se quiser configurações dos EUA, certifique-se de ter o seguinte no script:
Set DateFormat ='M/D/YYYY';
Set FirstWeekDay =6; // Sunday as first week day
Set BrokenWeeks =1; //(use broken weeks)
Set ReferenceDay =1; // Jan 1st is always in week 1
Os exemplos acima resultam no seguinte resultado da função weekstart():
Exemplo da função Weekstart
Date
Início da semana ISO
Início da semana dos EUA
Sat 2020 Dec 26
2020-12-21
12/20/2020
Sun 2020 Dec 27
2020-12-21
12/27/2020
Mon 2020 Dec 28
2020-12-28
12/27/2020
Tue 2020 Dec 29
2020-12-28
12/27/2020
Wed 2020 Dec 30
2020-12-28
12/27/2020
Thu 2020 Dec 31
2020-12-28
12/27/2020
Fri 2021 Jan 1
2020-12-28
12/27/2020
Sat 2021 Jan 2
2020-12-28
12/27/2020
Sun 2021 Jan 3
2020-12-28
1/3/2021
Mon 2021 Jan 4
2021-01-04
1/3/2021
Ter 2021, 5 de janeiro
2021-01-04
1/3/2021
Nota informativaO início da semana é às segundas-feiras na coluna ISO e aos domingos na coluna US.
Exemplo 1: Sem argumentos adicionais
Visão geral
Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém:
Um conjunto de dados contendo um conjunto de transações para 2022, que é carregado em uma tabela denominada Transactions.
O campo de data fornecido no formato da variável de sistema DateFormat(MM/DD/AAAA).
A criação de um campo, start_of_week, que retorna um carimbo de data/hora para o início da semana em que as transações ocorreram.
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
date
start_of_week
start_of_week_timestamp
Tabela de resultados
date
start_of_week
start_of_week_timestamp
1/7/2022
01/02/2022
1/2/2022 12:00:00 AM
1/19/2022
01/16/2022
1/16/2022 12:00:00 AM
2/5/2022
01/30/2022
1/30/2022 12:00:00 AM
2/28/2022
02/27/2022
2/27/2022 12:00:00 AM
3/16/2022
03/13/2022
3/13/2022 12:00:00 AM
4/1/2022
03/27/2022
3/27/2022 12:00:00 AM
5/7/2022
05/01/2022
5/1/2022 12:00:00 AM
5/16/2022
05/15/2022
5/15/2022 12:00:00 AM
6/15/2022
06/12/2022
6/12/2022 12:00:00 AM
6/26/2022
06/26/2022
6/26/2022 12:00:00 AM
7/9/2022
07/03/2022
7/3/2022 12:00:00 AM
7/22/2022
07/17/2022
7/17/2022 12:00:00 AM
7/23/2022
07/17/2022
7/17/2022 12:00:00 AM
7/27/2022
07/24/2022
7/24/2022 12:00:00 AM
8/2/2022
07/31/2022
7/31/2022 12:00:00 AM
8/8/2022
08/07/2022
8/7/2022 12:00:00 AM
8/19/2022
08/14/2022
8/14/2022 12:00:00 AM
9/26/2022
09/25/2022
9/25/2022 12:00:00 AM
10/14/2022
10/09/2022
10/9/2022 12:00:00 AM
10/29/2022
10/23/2022
10/23/2022 12:00:00 AM
O campo start_of_week é criado na instrução de carregamento anterior usando a função weekstart() e transmitindo o campo de data como o argumento da função.
A função weekstart() identifica inicialmente em qual semana o valor da data se enquadra, retornando um carimbo de data/hora para o primeiro milissegundo dessa semana.
A transação 8191 ocorreu em 5 de fevereiro. A variável de sistema FirstWeekDay define o primeiro dia da semana como domingo. A função weekstart() identifica que o primeiro domingo antes de 5 de fevereiro (e, portanto, o início da semana) foi em 30 de janeiro. Portanto, o valor start_of_week dessa transação retorna o primeiro milissegundo desse dia, que é 30 de janeiro às 12:00:00.
Exemplo 2: period_no
Visão geral
Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém:
O mesmo conjunto de dados e cenário do primeiro exemplo.
A criação de um campo previous_week_start, que retorna o carimbo de data/hora do início do trimestre antes da transação.
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
date
previous_week_start
previous_week_start_timestamp
Tabela de resultados
date
previous_week_start
previous_week_start_timestamp
1/7/2022
12/26/2021
12/26/2021 12:00:00 AM
1/19/2022
01/09/2022
1/9/2022 12:00:00 AM
2/5/2022
01/23/2022
1/23/2022 12:00:00 AM
2/28/2022
02/20/2022
2/20/2022 12:00:00 AM
3/16/2022
03/06/2022
3/6/2022 12:00:00 AM
4/1/2022
03/20/2022
3/20/2022 12:00:00 AM
5/7/2022
04/24/2022
4/24/2022 12:00:00 AM
5/16/2022
05/08/2022
5/8/2022 12:00:00 AM
6/15/2022
06/05/2022
6/5/2022 12:00:00 AM
6/26/2022
06/19/2022
6/19/2022 12:00:00 AM
7/9/2022
06/26/2022
6/26/2022 12:00:00 AM
7/22/2022
07/10/2022
7/10/2022 12:00:00 AM
7/23/2022
07/10/2022
7/10/2022 12:00:00 AM
7/27/2022
07/17/2022
7/17/2022 12:00:00 AM
8/2/2022
07/24/2022
7/24/2022 12:00:00 AM
8/8/2022
07/31/2022
7/31/2022 12:00:00 AM
8/19/2022
08/07/2022
8/7/2022 12:00:00 AM
9/26/2022
09/18/2022
9/18/2022 12:00:00 AM
10/14/2022
10/02/2022
10/2/2022 12:00:00 AM
10/29/2022
10/16/2022
10/16/2022 12:00:00 AM
Nesse caso, como um period_no de -1 foi usado como o argumento de deslocamento na função weekstart(), a função primeiro identifica a semana em que as transações ocorrem. Em seguida, ela procura uma semana antes e identifica o primeiro milissegundo daquela semana.
A transação 8196 ocorreu em 15 de junho. A função weekstart() identifica que a semana começa em 12 de junho. Portanto, a semana anterior começou em 5 de junho às 12h; esse é o valor retornado para o campo previous_week_start.
Exemplo 3: first_week_day
Visão geral
Abra o editor de carregamento de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém o mesmo conjunto de dados e cenário do primeiro exemplo. No entanto, neste exemplo, precisamos definir terça-feira como o primeiro dia da semana de trabalho.
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
date
start_of_week
start_of_week_timestamp
Tabela de resultados
date
start_of_week
start_of_week_timestamp
1/7/2022
01/04/2022
1/4/2022 12:00:00 AM
1/19/2022
01/18/2022
1/18/2022 12:00:00 AM
2/5/2022
02/01/2022
2/1/2022 12:00:00 AM
2/28/2022
02/22/2022
2/22/2022 12:00:00 AM
3/16/2022
03/15/2022
3/15/2022 12:00:00 AM
4/1/2022
03/29/2022
3/29/2022 12:00:00 AM
5/7/2022
05/03/2022
5/3/2022 12:00:00 AM
5/16/2022
05/10/2022
5/10/2022 12:00:00 AM
6/15/2022
06/14/2022
6/14/2022 12:00:00 AM
6/26/2022
06/21/2022
6/21/2022 12:00:00 AM
7/9/2022
07/05/2022
7/5/2022 12:00:00 AM
7/22/2022
07/19/2022
7/19/2022 12:00:00 AM
7/23/2022
07/19/2022
7/19/2022 12:00:00 AM
7/27/2022
07/26/2022
7/26/2022 12:00:00 AM
8/2/2022
08/02/2022
8/2/2022 12:00:00 AM
8/8/2022
08/02/2022
8/2/2022 12:00:00 AM
8/19/2022
08/16/2022
8/16/2022 12:00:00 AM
9/26/2022
09/20/2022
9/20/2022 12:00:00 AM
10/14/2022
10/11/2022
10/11/2022 12:00:00 AM
10/29/2022
10/25/2022
10/25/2022 12:00:00 AM
Nesse caso, como o argumento first_week_date de 1 é usado na função weekstart(), ele define o primeiro dia da semana como terça-feira.
A transação 8191 ocorreu em 5 de fevereiro. A função weekstart() identifica que a primeira terça-feira antes dessa data (e, portanto, o início da semana e o valor retornado) foi 1º de fevereiro às 12h.
Exemplo 4: Exemplo de objeto de gráfico
Visão geral
Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém o mesmo conjunto de dados e cenário do primeiro exemplo.
No entanto, neste exemplo, o conjunto de dados inalterado é carregado no aplicativo. O cálculo que retorna um carimbo de data/hora para o início da semana em que as transações ocorreram é criado como uma medida em um objeto de gráfico do aplicativo.
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esse campo como uma dimensão: date.
Para calcular o início da semana em que uma transação ocorre, adicione as seguintes medidas:
=weekstart(date)
=timestamp(weekstart(date))
Tabela de resultados
date
start_of_week
start_of_week_timestamp
1/7/2022
01/02/2022
1/2/2022 12:00:00 AM
1/19/2022
01/16/2022
1/16/2022 12:00:00 AM
2/5/2022
01/30/2022
1/30/2022 12:00:00 AM
2/28/2022
02/27/2022
2/27/2022 12:00:00 AM
3/16/2022
03/13/2022
3/13/2022 12:00:00 AM
4/1/2022
03/27/2022
3/27/2022 12:00:00 AM
5/7/2022
05/01/2022
5/1/2022 12:00:00 AM
5/16/2022
05/15/2022
5/15/2022 12:00:00 AM
6/15/2022
06/12/2022
6/12/2022 12:00:00 AM
6/26/2022
06/26/2022
6/26/2022 12:00:00 AM
7/9/2022
07/03/2022
7/3/2022 12:00:00 AM
7/22/2022
07/17/2022
7/17/2022 12:00:00 AM
7/23/2022
07/17/2022
7/17/2022 12:00:00 AM
7/27/2022
07/24/2022
7/24/2022 12:00:00 AM
8/2/2022
07/31/2022
7/31/2022 12:00:00 AM
8/8/2022
08/07/2022
8/7/2022 12:00:00 AM
8/19/2022
08/14/2022
8/14/2022 12:00:00 AM
9/26/2022
09/25/2022
9/25/2022 12:00:00 AM
10/14/2022
10/09/2022
10/9/2022 12:00:00 AM
10/29/2022
10/23/2022
10/23/2022 12:00:00 AM
A medida start_of_week é criada no objeto de gráfico usando a função weekstart() e transmitindo o campo date como o argumento da função.
A função weekstart() identifica inicialmente em qual semana o valor da data se enquadra, retornando um carimbo de data/hora para o primeiro milissegundo dessa semana.
A transação 8191 ocorreu em 5 de fevereiro. A variável de sistema FirstWeekDay define o primeiro dia da semana como domingo. A função weekstart() identifica que o primeiro domingo antes de 5 de fevereiro (e, portanto, o início da semana) foi 30 de janeiro. Portanto, o valor start_of_week dessa transação retorna o primeiro milissegundo desse dia, que é 30 de janeiro às 12h00.
Exemplo 5: Cenário
Visão geral
Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém:
Um conjunto de dados que é carregado em uma tabela denominada Payroll.
Dados que consistem em IDs de funcionários, nomes de funcionários e o salário diário ganho por cada funcionário.
Os funcionários começam a trabalhar na segunda-feira e trabalham seis dias por semana. A variável de sistema FirstWeekDay não deve ser modificada.
O usuário final gostaria de um objeto de gráfico que exiba, por ID do funcionário e nome do funcionário, os salários ganhos na semana atual.
A função weekstart(), ao usar a data de hoje como primeiro argumento e 0 como terceiro argumento, define segunda-feira como o primeiro dia da semana e retorna a data de início da semana atual. Ao subtrair esse resultado da data atual, a expressão retorna o número de dias decorridos até o momento nesta semana.
A condição então avalia se houve mais de seis dias nesta semana. Nesse caso, o day_rate do funcionário é multiplicado por 6 dias. Caso contrário, o day_rate é multiplicado pelo número de dias que ocorreram até o momento nesta semana.
Esta página ajudou?
Se você encontrar algum problema com esta página ou seu conteúdo - um erro de digitação, uma etapa ausente ou um erro técnico - informe-nos como podemos melhorar!