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.