Esta função retorna um valor correspondente a uma data/hora com o primeiro milissegundo do dia contido no argumento time. O formato de saída padrão será o TimestampFormat definido no script.
Sintaxe:
DayStart(time[, [period_no[, day_start]])
Tipo de dados de retorno: dual
Argumentos
Argumento
Descrição
time
A data/hora para avaliar.
period_no
period_no é um inteiro, ou uma expressão que resolve um inteiro, em que o valor 0 indica o dia que contém o time. Valores negativos em period_no indicam dias precedentes e valores positivos indicam dias sucessivos.
day_start
Para especificar que os dias não comecem à meia-noite, indique uma diferença como uma fração de um dia em day_start. Por exemplo, 0,125 para representar 3:00 a.m.
Em outras palavras, para criar o deslocamento, divida a hora de início por 24 horas. Por exemplo, para um dia começar às 7:00 a.m., use a fração 7/24.
Quando usar
A função daystart() é comumente usada como parte de uma expressão quando o usuário deseja que o cálculo use a fração do dia decorrido até o momento. Por exemplo, ela pode ser usada para calcular o total de salários ganhos pelos funcionários no dia até o momento.
Esses exemplos usam o formato de carimbo de data/hora 'M/D/YYYY h:mm:ss[.fff] TT'. O formato do carimbo de data/hora é especificado na instrução SET TimeStamp, na parte superior do script de carregamento de dados. Altere o formato nos exemplos para atender às suas necessidades.
Exemplos de funções
Exemplo
Resultado
daystart('01/25/2013 4:45:00 PM')
Retorna 1/25/2013 12:00:00 AM.
daystart('1/25/2013 4:45:00 PM', -1)
Retorna 1/24/2013 12:00:00 AM.
daystart('1/25/2013 16:45:00',0,0.5
)
Retorna 1/25/2013 12:00:00 PM.
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.
As configurações regionais padrão nos aplicativos são baseadas nas configurações regionais do sistema do computador ou servidor em que o Qlik Sense está instalado. Se o servidor Qlik Sense que você está acessando estiver definido como Suécia, o Editor de carregamento de dados usará as configurações regionais suecas para datas, horas e moedas. Essas configurações de formato regional não estão relacionadas ao idioma exibido na interface do usuário do Qlik Sense. O Qlik Sense será exibido no mesmo idioma do navegador que você está usando.
Exemplo 1 - Exemplo simples
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 simples contendo uma lista de datas, que é carregada em uma tabela chamada Calendar.
A variável de sistema padrão TimeStampFormat ((M/D/YYYY h:mm:ss[.fff] TT) é usada.
Um carregamento anterior que cria um campo adicional, denominado SOD_timestamp, usando a função daystart().
Além da data, nenhum parâmetro adicional é fornecido para a função.
Script de carregamento
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff] TT';
Calendar:
Load
date,
daystart(date) as SOD_timestamp
;
Load
date
Inline
[
date
03/11/2022 1:47:15 AM
03/12/2022 4:34:58 AM
03/13/2022 5:15:55 AM
03/14/2022 9:25:14 AM
03/15/2022 10:06:54 AM
03/16/2022 10:44:42 AM
03/17/2022 11:33:30 AM
03/18/2022 12:58:14 PM
03/19/2022 4:23:12 PM
03/20/2022 6:42:15 PM
03/21/2022 7:41:16 PM
];
Resultados
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
date
SOD_timestamp
Tabela de resultados
date
SOD_timestamp
03/11/2022 1:47:15 AM
3/11/2022 12:00:00 AM
03/12/2022 4:34:58 AM
3/12/2022 12:00:00 AM
03/13/2022 5:15:55 AM
3/13/2022 12:00:00 AM
03/14/2022 9:25:14 AM
3/14/2022 12:00:00 AM
03/15/2022 10:06:54 AM
3/15/2022 12:00:00 AM
03/16/2022 10:44:42 AM
3/16/2022 12:00:00 AM
03/17/2022 11:33:30 AM
3/17/2022 12:00:00 AM
03/18/2022 12:58:14 PM
3/18/2022 12:00:00 AM
03/19/2022 4:23:12 PM
3/19/2022 12:00:00 AM
03/20/2022 6:42:15 PM
3/20/2022 12:00:00 AM
03/21/2022 7:41:16 PM
3/21/2022 12:00:00 AM
Como você pode ver na tabela acima, o carimbo de data/hora do fim do dia é gerado para cada data em nosso conjunto de dados. O carimbo de data/hora está no formato da variável do sistema TimestampFormat M/D/YYYY h:mm:ss[.fff] TT.
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:
Um conjunto de dados contendo multas de estacionamento, que é carregado em uma tabela denominada Fines. O conjunto de dados inclui os seguintes campos:
id
due_date
number_plate
amount
Um carregamento anterior usando a função daystart() e fornecendo todos os três parâmetros: time, period_no e day_start. Esse carregamento anterior cria os dois novos campos de data a seguir:
Um campo de data early_repayment_period, começando sete dias antes do vencimento do pagamento.
Um campo de data late_penalty_period, começando 14 dias após o vencimento do pagamento.
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
due_date
early_repayment_period
late_penalty_period
Tabela de resultados
due_date
early_repayment_period
late_penalty_period
02/11/2022 9:25:14 AM
2/4/2022 12:00:00 AM
2/25/2022 12:00:00 AM
03/25/2022 10:06:54 AM
3/18/2022 12:00:00 AM
4/8/2022 12:00:00 AM
04/14/2022 10:44:42 AM
4/7/2022 12:00:00 AM
4/28/2022 12:00:00 AM
06/28/2022 11:33:30 AM
6/21/2022 12:00:00 AM
7/12/2022 12:00:00 AM
08/15/2022 12:58:14 PM
8/8/2022 12:00:00 AM
8/29/2022 12:00:00 AM
11/16/2022 4:23:12 PM
11/9/2022 12:00:00 AM
11/30/2022 12:00:00 AM
01/17/2023 6:42:15 PM
1/10/2023 12:00:00 AM
1/31/2023 12:00:00 AM
03/22/2023 7:41:16 PM
3/15/2023 12:00:00 AM
4/5/2023 12:00:00 AM
Os valores dos novos campos estão em TimestampFormat M/DD/YYYY tt. Como a função daystart() foi usada, os valores de carimbo de data/hora são todos os primeiros milissegundos do dia.
Os valores do período de reembolso antecipado são sete dias antes da data de vencimento, como resultado de o segundo argumento transmitido na função daystart() ser negativo.
Os valores do período de reembolso tardio são 14 dias após a data de vencimento, como resultado de o segundo argumento transmitido na função daystart() ser positivo.
Exemplo 3: day_start
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 exemplo anterior.
O mesmo carregamento anterior que o exemplo anterior.
Neste exemplo, definimos o dia útil para começar e terminar às 7:00 AM todos os dias.
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
due_date
early_repayment_period
late_penalty_period
Tabela de resultados
due_date
early_repayment_period
late_penalty_period
02/11/2022
2/3/2022 7:00:00 AM
2/24/2022 7:00:00 AM
03/25/2022
3/17/2022 7:00:00 AM
4/7/2022 7:00:00 AM
04/14/2022
4/6/2022 7:00:00 AM
4/27/2022 7:00:00 AM
06/28/2022
6/20/2022 7:00:00 AM
7/11/2022 7:00:00 AM
08/15/2022
8/7/2022 7:00:00 AM
8/28/2022 7:00:00 AM
11/16/2022
11/8/2022 7:00:00 AM
11/29/2022 7:00:00 AM
01/17/2023
1/9/2023 7:00:00 AM
1/30/2023 7:00:00 AM
03/22/2023
3/14/2023 7:00:00 AM
4/4/2023 7:00:00 AM
As datas agora têm um carimbo de data/hora de 7:00 AM porque o valor do argumento day_start que foi transmitido para a função daystart() era 7/24. Isso define o início do dia como 7:00 AM.
Como o campo due_date não tem um carimbo de data/hora, ele é tratado como 12:00 AM, o que, portanto, ainda faz parte do dia anterior, já que os dias começam e terminam às 7:00 AM. Portanto, o período de reembolso antecipado de uma multa devida em 11 de fevereiro começa em 3 de fevereiro às 7:00 AM.
Exemplo 4: Exemplo de objeto de gráfico
Visão geral
Abra o editor de carregamento de dados e adicione o script de carregamento abaixo em uma nova guia.
Este exemplo usa o mesmo conjunto de dados e cenário do exemplo anterior.
No entanto, somente a tabela Fines original é carregada no aplicativo, com os dois valores adicionais de datas de vencimento sendo calculados em um objeto de gráfico.
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esse campo como uma dimensão: due_date.
Para criar o campo early_repayment_period, crie a seguinte medida:
=daystart(due_date,-7,7/24)
Para criar o campo late_penalty_period, crie a seguinte medida:
=daystart(due_date,14,7/24)
Tabela de resultados
due_date
=daystart(due_date,-7,7/24)
=daystart(due_date,14,7/24)
02/11/2022 9:25:14 AM
2/4/2022 7:00:00 AM
2/25/2022 7:00:00 AM
03/25/2022 10:06:54 AM
3/18/2022 7:00:00 AM
4/8/2022 7:00:00 AM
04/14/2022 10:44:42 AM
4/7/2022 7:00:00 AM
4/28/2022 7:00:00 AM
06/28/2022 11:33:30 AM
6/21/2022 7:00:00 AM
7/12/2022 7:00:00 AM
08/15/2022 12:58:14 PM
8/8/2022 7:00:00 AM
8/29/2022 7:00:00 AM
11/16/2022 4:23:12 PM
11/9/2022 7:00:00 AM
11/30/2022 7:00:00 AM
01/17/2023 6:42:15 PM
1/10/2023 7:00:00 AM
1/31/2023 7:00:00 AM
03/22/2023 7:41:16 PM
3/15/2023 7:00:00 AM
4/5/2023 7:00:00 AM
Os valores dos novos campos estão em TimestampFormat M/D/YYYY h:mm:ss[.fff] TT. Como a função daystart() foi usada, os valores de carimbo de data/hora correspondem ao primeiro milissegundo do dia.
Os valores do período de reembolso antecipado são sete dias antes da data de vencimento, já que o segundo argumento transmitido na função daystart() era negativo.
Os valores do período de reembolso tardio são 14 dias após a data de vencimento, já que o segundo argumento transmitido na função daystart() era positivo.
As datas têm um carimbo de data/hora de 7:00 AM, pois o valor do terceiro argumento transmitido para a função daystart(), day_start, era 7/24.
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!