Função AGE( )
Retorna o número de dias decorridos (idade) entre uma data específica e uma data limite específica ou a data atual do sistema operacional ou o número de dias decorridos entre quaisquer duas datas.
Sintaxe
AGE(data/datahora/cadeia <;data_limite>)
Parâmetros
Nome | Tipo | Descrição |
---|---|---|
data/datahora/cadeia |
caractere datahora |
O campo, expressão ou valor literal do qual será calculada a idade. |
data_limite
opcional |
caractere datahora |
O campo, expressão ou valor literal com o qual comparar data/datahora/cadeia. Se omitido, a data atual do sistema operacional será usada como data limite. |
Nota
data/datahora/cadeia e data_limite ambos podem aceitar um valor datahora. Não é possível usar AGE( ) com valores de hora apenas.
Para obter mais informações, consulte Usando AGE( ) com dados de datahora.
Saída
Numérico.
Exemplos
Exemplos básicos
Sem data limite
Retorna o número de dias entre 31 de dezembro de 2014 e a data atual:
- Se um valor positivo é retornado, é igual ao número de dias no passado em que ocorreu a data 31 de dezembro de 2014
- Se um valor negativo é retornado, é igual ao número de dias no futuro em que ocorrerá a data 31 de dezembro de 2014
- Se "0" é retornado, 31 de dezembro de 2014 é a data atual
AGE(`20141231`)
Retorna o número de dias entre cada data no campo Data_vencimento e a data atual:
AGE(Data_vencimento)
Mistura de tipos de dados
Retorna 518, o número de dias entre as duas datas especificadas:
AGE(`20130731`;`20141231`)
AGE("20130731";"20141231")
AGE(`20130731`;"20141231")
AGE(`20130731 235959`;`20141231`)
Uso de datas e campos de limite
Retorna o número de dias entre cada data no campo Data_vencimento e a data limite de 31 de dezembro de 2014:
- As datas anteriores à data limite retornam um valor positivo equivalente ao número em dias antes do dia limite em que ocorrem
- As datas anteriores à data limite retornam um valor negativo equivalente ao número em dias após o dia limite em que ocorrem
AGE(Data_vencimento; `20141231`)
Retorna o número de dias entre 31 de dezembro de 2014 e cada data no campo Data_vencimento. Os resultados são os mesmos do exemplo logo acima, mas o sinal dos valores retornados (positivo ou negativo) é invertido:
AGE(`20141231`; Data_vencimento)
Comparação de datas em campos
Retorna o número de dias entre cada data no campo Data_pagamento e uma data correspondente no campo Data_vencimento:
- As datas de pagamento anteriores à data de vencimento retornam um valor positivo, indicando pagamento no prazo
- As datas de pagamento posteriores à data de vencimento retornam um valor negativo, indicando pagamento com atraso
AGE(Data_pagamento; Data_vencimento)
Retorna o número de dias entre cada data no campo Data_pagamento e uma data correspondente no campo Data_vencimento mais um período de carência de 15 dias.
- As datas de pagamento anteriores às datas de vencimento ou até 15 dias após as datas de vencimento retornam um valor positivo
- As datas de pagamento posteriores a 15 dias após a data de vencimento retornam um valor negativo, indicando pagamento com atraso fora do período de carência
AGE(Data_pagamento; Data_vencimento+15)
Exemplos avançados
Extração de pagamentos vencidos
Extraia o nome, o valor e a data da fatura de cada registro em que a idade da fatura é maior que 180 dias, com base em uma data limite de 31 de dezembro de 2014:
EXTRACT FIELDS Nome Valor Data_Fatura TO "Vencido" IF AGE(Data_Fatura;`20141231`) > 180
Observações
Como funciona?
A função AGE( ) calcula o número de dias entre duas datas.
Quando usar AGE( )
Use AGE( ) para comparar duas datas para determinar contas em atraso, para realizar análises de saldos divididas em períodos ou para realizar qualquer tarefa que exija o número de dias decorridos entre duas datas.
Valores de retorno negativos
Um valor negativo é retornado se a data especificada para data/datahora/cadeia for mais recente do que a data especificada como data_limite ou a data do sistema operacional se não for especificada a data_limite.
Retorna -518:
AGE(`20141231`; `20130731`)
Se você quiser que o número de dias decorridos entre duas datas seja sempre um número positivo, independentemente de qual data for mais recente, aninhe a função AGE( ) dentro da função ABS( ).
Retorna 518:
ABS(AGE(`20141231`; `20130731`))
Usando AGE( ) com dados de datahora
A função AGE( ) pode aceitar dados de datahora em um ou nos dois parâmetros. No entanto, você precisa ter cuidado se a parte do tempo dos dados incluir um deslocamento do UTC (indicador de fuso horário).
Dados de datahora sem deslocamento do UTC
A parte da hora de um valor datahora não afeta o cálculo da data realizado por AGE( ) se os dados de hora não incluírem um deslocamento do UTC.
Dados de datahora com um deslocamento do UTC
A parte da hora de um valor datahora pode afetar o cálculo da data realizado por AGE( ) se os dados de hora em um ou ambos os parâmetros incluírem um deslocamento do UTC. O Analytics reconcilia automaticamente o deslocamento do UTC antes de realizar o cálculo, o que pode causar alteração no resultado em 1 dia se a reconciliação mover o horário para frente ou para trás através do limite da meia-noite.
Para obter mais informações, consulte Como os deslocamentos do UTC afetam as expressões de datahora.
Uso de um campo para a data limite
Ao contrário do comando AGE, que exige um valor de data literal para a data limite, a função AGE( ) permite que você use um campo para a data limite.
Por exemplo:
AGE(Data_pagamento; Data_vencimento)
O uso da função AGE( ) dessa forma é equivalente ao cálculo da diferença entre dois campos de data subtraindo-os em uma expressão.
Por exemplo:
Data_vencimento – Data_pagamento
Detalhes do parâmetro
Um campo datahora especificado para data/datahora/cadeia ou data_limite pode usar qualquer formato de data ou datahora, desde que a definição do campo defina corretamente o formato.
Especificação de literal de data ou de um valor datahora
Ao especificar um valor literal de data ou datahora para data/datahora/cadeia ou data_limite, você fica restrito aos formatos na tabela abaixo e o valor deve estar entre apóstrofos invertidos, apóstrofos ou aspas – por exemplo, `20141231` ou "20141231"
Não use separadores como barras (/) ou dois pontos (:) entre os componentes individuais de datas ou horas. Os valores de tempo em caracteres aceitam dois pontos.
-
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'.
Exemplos de formato
Exemplos de valores literais
AAAAMMDD
`20141231`
"20141231"
AAMMDD
`141231`
"141231"
AAAAMMDD hhmmss
`20141231 235959`
"20141231 235959"
AAMMDDthhmm
`141231t2359`
"141231t2359"
AAAAMMDDThh
`20141231T23`
"20141231T23"
AAAAMMDD hhmmss+/-hhmm
(ajuste UTC)
`20141231 235959-0500`
"20141231 235959-0500"
AAMMDD hhmm+/-hh
(ajuste UTC)
`141231 2359+01`
"141231 2359+01"
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.