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 onde 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 Qlik Sense interface do usuário. 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 seção.
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
data
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 seção.
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 seção.
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 – avise-nos!