Usar datahoras em expressões
Você pode utilizar expressões para executar cálculos com datas, datahoras e horários:
- Calcule tempos decorridos, tempo e dias decorridos ou horas decorridas
Por exemplo, `20141231` - `20141130` retorna 31, o número de dias entre as duas datas.
- Faça ajustes positivos ou negativos em datas, datahoras ou horários
Por exemplo, `20141231` - 15 retorna 16 Dez 2014, a data de 15 dias antes.
- Compare datas, datahoras ou horários
Por exemplo, `20141231 183000` > `20141231 171500` retorna T (Verdade), porque a primeira datahora é mais recente do que a segunda datahora.
Funções de data e hora
Para ajudá-lo a trabalhar com dados de datahora, o Analytics fornece uma variedade de funções de data e hora que executam diversas tarefas úteis. Você pode usar essas funções ao criar expressões de datahora.
As funções de datahora, agrupadas por tarefa, são exibidas na tabela a seguir. Você pode ver a mesma lista de funções se filtrar a lista suspensa Funções no Construtor de expressões por Data e hora.
Tarefa executada |
Funções |
---|---|
Retorna o número de dias decorridos (idade) entre uma data e uma data limite ou a data atual ou o número de dias decorridos entre quaisquer duas datas. |
|
Calcula uma data, um fim de mês ou um número específico de meses anteriores a uma data |
|
Identifica o dia da semana, ou o mês do ano, de uma data |
|
Retorna um valor numérico (1 a 7) representando o dia da semana para uma data |
|
Extrai os dados ou a hora de um valor de datahora |
|
Extrai dia, mês, ano, hora, minutos ou segundos de um valor de datahora |
|
Converte valores de datahora seriais, valores de caractere ou valores de datahora numéricos para valores de datahora normais com um tipo de dados de datahora |
|
Retorna a data, datahora ou hora atual do sistema operacional. |
Uma quantidade de tempo em relação a um ponto no tempo
Ao trabalhar com datahoras em expressões, é importante diferenciar entre quantidades de tempo e pontos no tempo, pois a diference exige a criação de tipos diferentes de expressões.
Horários
O valor de tempo 08:30:00 pode ser uma quantidade de tempo (8 horas e 30 minutos) ou um ponto no tempo (08:30:00 AM da manhã).
Nota
O Formato de exibição de hora ( ) no primeiro exemplo é hh:mm:ss e no segundo exemplo é hh:mm:ss PM. Ambos os exemplos envolvem cálculos de datahora serial, que são explicados nas seções seguintes.
Quantidade de tempo
Se você subtrair uma hora de outra hora, o resultado será um tempo decorrido, que é uma quantidade de tempo.
Retorna 01:15:00 (1 hora, 15 minutos, 0 segundos):
STOT(`T083000` - `T071500`)
Ponto no tempo
Se você adicionar ou subtrair um número de uma hora, o resultado será um ajuste positivo ou negativo que criar outro ponto no tempo, anterior ou posterior à hora inicial.
Retorna 07:00:00 AM:
`T083000` - (1.00000000/24*1,5)
Datas
Quantidade de tempo
Se você subtrair uma data de outra data, o resultado será o número de dias decorridos, que é uma quantidade de tempo.
Retorna 31, o número de dias entre as duas datas:
`20141231` - `20141130`
Ponto no tempo
Se você adicionar ou subtrair um número de uma data, o resultado será outro ponto no tempo, posterior ou anterior à data inicial.
Retorna 30 Nov 2014, a data 31 dias antes:
`20141231` - 31
Expressões de datahora válidas e inválidas
Expressões de datahoras englobam um número de combinações possíveis de subtipos de datahora (data, datahora e horário) e operador. Nem todas as combinações são expressões válidas. Por exemplo, você pode subtrair uma data de outro para descobrir o número de dias decorridos, mas você não pode adicionar duas datas porque a operação é ilógica. Você pode, no entanto, adicionar um número a uma data para produzir uma data subsequente.
As seguintes regras se aplicam a expressões de datahora:
-
Subtrair ou comparar datahoras Qualquer combinação de data, datahora ou valores de horário pode ser utilizada em uma operação de subtração ou comparação.
-
Adicionar ou subtrair números e datahoras Números inteiros, mistos e frações podem ser subtraídos ou adicionados aos valores de data, datahora ou hora.
-
Adicionar datahoras Não é possível somar valores de data, datahora ou hora entre si.
Se você precisar adicionar quantidades de tempo, como horas trabalhadas em uma semana, você pode usar as funções do Analytics para extrair as partes de hora, minutos e segundos de horários como valores numéricos. Você pode realizar cálculos nestes valores numéricos. Para obter mais informações, consulte Usando funções para adicionar quantidades de tempo.
-
Comparar datahoras e números Valores de data, datahora ou hora não podem ser comparados a números.
A tabela abaixo sumariza as combinações possíveis com expressões de datahora e indica se cada combinação é válida ou inválida – isto é, se ela pode ser processada pelo Analytics.
Nota
Mesmo que uma expressão seja válida, pode ser que ela nem sempre sirva para um propósito analítico útil. Por exemplo, o Analytics processará a expressão Data_Término > Data_Início, mas o resultado será sempre Verdadeiro (T) e comparar uma data a uma hora não serve a nenhum propósito lógico.
|
Valor de data |
Valor de datahora |
Valor de hora |
Número |
---|---|---|---|---|
Valor de data |
Válido: Subtrair Comparar |
Válido: Subtrair Comparar |
Válido: Subtrair Comparar |
Válido: Subtrair Adicionar |
Inválido: Adicionar |
Inválido: Adicionar |
Inválido: Adicionar |
Inválido: Comparar |
|
Valor de datahora |
Válido: Subtrair Comparar |
Válido: Subtrair Comparar |
Válido: Subtrair Comparar |
Válido: Subtrair Adicionar |
Inválido: Adicionar |
Inválido: Adicionar |
Inválido: Adicionar |
Inválido: Comparar |
|
Valor de hora |
Válido: Subtrair Comparar |
Válido: Subtrair Comparar |
Válido: Subtrair Comparar |
Válido: Subtrair Adicionar |
Inválido: Adicionar |
Inválido: Adicionar |
Inválido: Adicionar |
Inválido: Comparar |
Tipos de dados retornados por expressões de datahora
O tipo de dados do resultado devolvido por uma expressão de datahora depende dos valores e dos operadores na expressão:
Expressão de datahora |
Tipo de dados do resultado |
---|---|
Subtração (apenas valores de datahora) Qualquer combinação de data, datahora ou valores usados em uma operação de subtração. |
Numérico Uma data serial, uma datahora serial ou hora serial Para obter mais informações, consulte Datahoras seriais. |
Adição ou subtração (valores de datahora e números) Número inteiro, misto ou fracional subtraído ou adicionado à data, datahora ou valor de horário. |
Datahora Um subtipo de data, datahora ou hora do tipo de dados de Datahora |
Comparação (apenas valores de datahora) Qualquer combinação de data, datahora ou valores usados em uma operação de comparação. |
Lógico T (Verdadeiro) ou F (Falso) |
Formato dos literais de datahora
- Valores de datahora você pode usar qualquer combinação de formatos de data, separador e hora listados na tabela abaixo
A data deve preceder a hora e um separador deve ser usado entre os dois. Os separadores válidos são um único espaço em branco ou as letras "t" ou "T".
- Valores de tempo você deve especificar as horas usando o formato de 24 horas
Os ajustes do horário universal coordenado (UTC) devem ser precedidos por um sinal de mais (+) ou de menos (-).
Exemplos de formatos
Valores literais dos exemplos
AAAAMMDD
`20141231`
AAMMDD
`141231`
AAAAMMDD hhmmss
`20141231 235959`
AAMMDDthhmm
`141231t2359`
AAAAMMDDThh
`20141231T23`
AAAAMMDD hhmmss+/-hhmm
(ajuste UTC)
`20141231 235959-0500`
AAMMDD hhmm+/-hh
(ajuste UTC)
`141231 2359+01`
thhmmss
`t235959`
Thhmm
`T2359`
Nota
Não use somente hh no formato de hora principal com dados que têm um ajuste UTC. Por exemplo, evite: hh+hhmm. Os resultados podem ser não confiáveis.
Usando funções para adicionar quantidades de tempo
Você não pode adicionar valores de hora diretamente uns aos outros no Analytics. No entanto, você pode usar as funções do Analytics para extrair as partes de hora, minutos e segundos de horas como valores numéricos e, em seguida, realizar cálculos sobre estes valores numéricos.
O exemplo dos dados de cronograma abaixo ilustra esta abordagem utilizando horas e minutos.
Vários campos calculados são necessários para produzir os cálculos:
Nome de campo calculado |
Expressão |
Descrição |
---|---|---|
Transcorrido |
STOT(Hora_Término - Hora_Início) |
Uma operação de subtração que calcula as horas trabalhadas naquele dia. A função STOT( ) converte os resultados de valores de tempo seriais para valores de tempo regulares. |
Horas |
HOUR(Transcorrida) |
A parte de hora extraída como valor numérico do valor Transcorrido. |
Minutos |
MINUTE(Transcorrido) |
A parte de minutos extraída como valor numérico do valor Transcorrido. (Para propósitos de exibição. Não é necessário para o cálculo.) |
Frações de Hora |
MINUTE(Transcorrido)/60,000 |
A parte de minutos extraída como valor numérico do valor Transcorrido e calculada como porção fracional decimal de 60 minutos. |
Horas+Frações de Hora |
Horas + Frações_de_Hora |
As horas numéricas e frações de horas adicionadas juntamente. |
Como passo final, você pode totalizar o campo Horas+Frações de Horas para calcular as horas totais para a semana:
Fazendo ajustes positivos ou negativos em datas, datahoras ou horários
Você pode fazer um ajuste negativo ou positivo em uma data, datahora ou valores de tempo como, por exemplo, adicionar ou subtrair 15 dias ou adicionar ou subtrair 3 horas.
Fazer um ajuste positivo ou negativo a uma data
Fazer um ajuste negativo ou positivo em uma data é bastante simples. Você adiciona ou subtrai o número necessário de dias para calcular uma data com base na outra.
Retorna 15 Jan 2015:
`20141231` - 15
Retorna 16 Dez 2014:
`20141231` - 15
Fazer um ajuste positivo ou negativo a uma datahora ou hora
Fazer um ajuste negativo ou positivo em uma datahora ou valor de hora é um pouco menos simples do que fazer um ajuste em uma data.
Você não pode adicionar valores de tempo um para o outro diretamente ou um valor de tempo para um valor de datahora. Por exemplo, se você tentar fazer um ajuste positivo de 3 horas usando qualquer uma das expressões a seguir, você obterá um erro.
Retorna o erro Incongruência do tipo de expressão:
`t120000` + `t030000`
Retorna o erro Incongruência do tipo de expressão:
`20141231 235959` + `t030000`
Faça um ajuste positivo usando o equivalente em hora serial
Você pode criar uma expressão válida adicionando o tempo serial equivalente a 3 horas (0,125), mas a criação manual dessas expressões pode ser complicada, já que exige que você saiba qual é o equivalente do tempo serial.
Retorna 15:00:00:
`t120000` + 0,125
Retorna 01 Jan 2015 02:59:59:
`20141231 235959` + 0,125
Fazer um ajuste negativo com um resultado de datahora serial ou hora
Fazer um ajuste negativo em uma datahora ou valor de tempo é mais fácil, porém, o resultado é um valor serial de datahora ou valor serial de tempo que deve ser convertido para um valor de tempo ou datahora regular para se tornar mais legível.
Retorna 0,37500000000000 :
`t120000` - `t030000`
Retorna 09:00:00 :
STOT(`t120000` - `t030000`)
Criar um campo calculado para fazer ajustes positivos ou negativos com mais facilidade
O método a seguir permite a você fazer ajustes negativos ou positivos em valores de datahora ou tempo mais facilmente:
- Crie um campo calculado que calcula o tempo serial equivalente à quantidade de tempo que você quer adicionar ou subtrair.
Retorna 0,10416668 , a hora serial de 2-1/2 horas:
(1,00000000/24*2,5)
Você deve especificar '1' com múltiplos zeros em casas decimais para assegurar que o Analytics não arredondará os resultados.
Você pode mudar o número pelo qual você multiplica para obter um número apropriado de horas: (1.00000000/24*1) , (1.00000000/24*8) , (1.00000000/24*10.25) , etc.
- No mesmo campo calculado, adicione ou subtraia o tempo serial calculado de ou para o tempo fonte ou valor de datahora.
Retorna valores no campo + 2-1/2 horas:
<campo hora ou datahora> + (1,00000000/24*2,5)
- Se quiser adicionar ou subtrair dias e hora em um valor de datahora, inclua um número apropriado de dias no cálculo.
Retorna valores no campo + 2 dias e 2-1/2 horas:
<campo datahora> + 2 + (1,00000000/24*2,5)
Exemplos de expressões de datahora
As tabelas a seguir oferecem exemplos de expressões de datahora válidas:
- Calcule tempos decorridos, tempo e dias decorridos ou horas decorridas
- Faça ajustes positivos ou negativos em datas, datahoras ou horários
- Compare datas, datahoras ou horários
- Expressões de datahora que usam funções de conversão
Nota
Em vários exemplos, os resultados são retornados como datahoras seriais – isto é, um valor de data, datahora ou hora representado por como inteiro ou parte fracionária decimal de 24 horas.
Você pode usar as funções STOD( ), STODT( ) e STOT( ) para converter resultados de datahora seriais em valores de datahora regulares. Para obter mais informações, consulte Datahoras seriais.
Calcule tempos decorridos, tempo e dias decorridos ou horas decorridas
Expressão |
Resultado |
---|---|
`20141231` - `20141130` |
31 Os dias transcorridos entre as duas datas |
Data_de_Término - Data_de_Início |
Os dias transcorridos entre os valores da Data_de_Término e da Data_de_Início |
`20141231 235959` - `20141130 114530` |
31,51005787037037 Os dias e horas transcorridos entre as duas datahoras, com a hora expressa como hora serial |
STRING(INT(`20141231 235959` - `20141130 114530`);5) + " " + TIME(STOT(MOD(`20141231 235959` - `20141130 114530`; 1))) |
31 12:14:29 Os dias e horas transcorridos entre as duas datahoras no exemplo acima, expressos como dias, horas, minutos e segundos. Presume um formato atual de exibição de hora do Analytics como hh:mm:ss |
(`20141231 235959` - `20141130 114530`) * 24 |
756,24138888888888 As horas transcorridas entre as duas datahoras no exemplo acima, expressas como horas e uma fração de uma hora |
Datahora_Término - Datahora_Início |
Os dias e horas transcorridos entre os valores de Datahora_Término e Datahora_Início, com a hora expressa como hora serial |
STRING(INT(Datahora_Término - Datahora_Início); 5) + " " + TIME(STOT(MOD(Datahora_Término - Datahora_Início; 1))) |
Os dias e horas transcorridos entre os valores de Término_Datahora e Início_Datahora, expressos como dias, horas, minutos e segundos |
`T235959` - `T114530` |
0,51005787037037 O tempo transcorrido entre as duas horas, expressado como uma hora serial |
STOT(0,51005787037037) |
12:14:29 A hora serial no exemplo acima convertida para um valor de hora, usando o formato de exibição de hora do Analytics atual |
STOT(`T235959` - `T114530`) |
12:14:29 O tempo transcorrido entre as duas horas, expresso como uma hora usando o atual formato de exibição de horas do Analytics |
Hora_de_Término - Hora_de_Início |
As horas transcorridas entre os valores da Hora_de_Término e a Hora_de_Início, expressas como uma hora serial |
Faça ajustes positivos ou negativos em datas, datahoras ou horários
Expressão |
Resultado |
---|---|
Data_vencimento + 15 |
Os valores no campo Data_vencimento são aumentados em 15 dias |
`20141231` - 15 |
16 Dez 2014 A data diminuiu em 15 dias. Pressupõe um formato de exibição de data atual do Analytics como DD MMM AAAA |
`20141231 235959` + (1,00000000/24*1,5) |
01 Jan 2015 01:29:59 A datahora mais 1,5 horas |
`20141231 235959` - (1,00000000/24*1,5) |
31 Dez 2014 22:29:59 A datahora menos 1,5 horas |
STODT(`20141231 235959` - `T013000`) |
31 Dez 2014 22:29:59 A datahora menos 1,5 horas |
`20141231 235959` + 2 + (1,00000000/24*1,5) |
03 Jan 2015 01:29:59 A datahora mais 2 dias e 1,5 horas |
`20141231 235959` - 2 - (1,00000000/24*1,5) |
29 Dez 2014 22:29:59 A datahora menos 2 dias e 1,5 horas |
`t235959` + (1,00000000/24*1,5) |
01:29:59 O tempo mais 1,5 horas |
`T173000` - (1,00000000/24*1,5) |
16:00:00 O tempo menos 1,5 horas |
STOT(`T173000` - `T013000`) |
16:00:00 O tempo menos 1,5 horas |
STOT(STOT(`T173000` - `T013000`) - `T010000`) |
15:00:00 A hora menos 1,5 horas, menos 1 outra hora |
Compare datas, datahoras ou horários
Expressão |
Resultado |
---|---|
`20141231` > `20141230` |
T (Verdadeiro) |
Data_vencimento <= `20141231` |
Todos os valores no campo Data_vencimento menores ou iguais a 31 Dez 2014 |
Data_pagamento > Data_vencimento |
Todos os valores no campo Data_pagamento posteriores à data de vencimento |
CTOD(DATE(Carimbo_de_data_pagamento; "AAAAMMDD"); "AAAAMMDD") > Data_vencimento |
Todos os valores no campo Carimbo_de_data_pagamento posteriores à data de vencimento Para comparar valores de datahora e data, a data é primeiro extraída como valor de caractere dos valores de datahora no campo Carimbo_de_hora_pagamento e, em seguida, convertida para o valor de data para que seja comparado com a data de vencimento. Para garantir que os formatos correspondem, formatos idênticos são especificados para o parâmetro de formato DATE( ) (o formato de saída) e o parâmetro de formato CTOD ( ) (o formato de entrada). |
Hora_login > `t100000` |
Todos os valores no campo Hora_login são posteriores a 10:00:00 |
Expressões de datahora que usam funções de conversão
Expressão |
Resultado |
---|---|
STOT(CTOT("t120000") - CTOT("t090000") ) |
03:00:00 O tempo transcorrido entre os valores de hora de dois caracteres Os valores de hora do caractere são primeiro convertido para valores de hora regulares, de modo que possam ser usados em uma operação de subtração. A hora serial numérica resultante da operação de subtração será então convertida em um valor de hora regular. |
CTOT(TIME(`20141231 125959`)) < `T235959` |
T (Verdadeiro) A hora é extraída primeiro como valor de caractere do valor de datahora e, em seguida, convertida para um valor de hora para que possa ser comparada com 23:59:59. |