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 as configurações regionais do aplicativo.
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.
Diagrama da função weekstart(), exemplo sem argumentos adicionais
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.
Diagrama da função weekstart(), exemplo de period_no
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.
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.
Diagrama da função weekstart(), exemplo de first_week_day
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.
Diagrama da função weekstart(), exemplo de objeto de gráfico
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.
Variable
A variable in Qlik Sense is a container storing a static value or a calculation, for example a numeric or alphanumeric value.
The term dataset is usually synonymous with table. It can refer to the original source table, the table after undergoing transformations, or the fact and dimension tables in a data mart.
A field is a data asset containing values, loaded from a data source. At a basic level, a field corresponds to a column in a table. Fields are used to create dimensions and measures in visualizations.
A preceding load is a script construct that allows you to load from the following LOAD or SELECT statement without specifying that source. Preceding loads are often faster than resident loads.
The load script is a sequence of statements that defines what data to load and how to link the different loaded tables. It can be generated with the Data manager, or with the Data load editor, where it also can be viewed and edited.
A measure is a calculation base on one ore more aggregations. For example, the sum of sales is a single aggregation, while the sum of sales divided by the count of customers is a measure based on two aggregations.
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!