Funções de data

Aprenda sobre as funções de data da Digibee Integration Platform e como utilizá-las.

As funções foram criadas para:

  • Acelerar ainda mais a criação das suas integrações.

  • Diminuir a complexidade dos seus pipelines.

  • Simplificar conversões e transformações dos dados durante o fluxo dos seus pipelines.

As funções de data realizam tratamento, geração e conversão de datas e estão disponíveis para componentes que suportam expressões com Double Braces. Para saber como passar informações para os componentes utilizando esse recurso, leia a documentação Funções Double Braces.

Confira a documentação SimpleDateFormat da Oracle para obter mais informações sobre formatos de data e como utilizá-los em funções como FORMATDATE.

FORMATDATE

Utilizando Double Braces, você pode combinar a função com o acesso ao elemento do JSON de entrada de um componente.

A função é aplicada para formatar data e horário (incluindo a possibilidade de tratar o seu locale e timezone).

Sintaxe

FORMATDATE(valor, "formato-da-origem", "formato-do-destino", "locale-origem"?, "timezone-origem"?, "locale-destino"?, "timezone-destino"?)

Os itens indicados com "?" podem ser definidos com valor null.

  • definição de formato da data: dd/MM/yyyy. Também é possível definir apenas a palavra 'timestamp'.

  • o valor será sempre convertido com ISO Zoned Date/Time.

Valor de entrada:

{
"date": "10/10/2010 11:59:59",
"date_no_time": "30/10/2010",
"time_no_date": "11:12:13",
"timestamp_date": 1564670039000,
"date_time_utc" : "2012-10-01T09:45:00.0000000+00:00"
}

Exemplos de conversões:

{

"timezone_conversion": {{ FORMATDATE(message.date, "dd/MM/yyyy HH:mm:ss", "dd/MM/yyyy HH:mm:ss z", null, "GMT-3", null, "UTC") }},

"simple_date": {{ FORMATDATE(message.date_no_time, "dd/MM/yyyy", "MM/dd/yyyy") }},

"simple_time": {{ FORMATDATE(message.time_no_date, "HH:mm:ss", "ss:mm:HH") }},

"date_from_timestamp": {{FORMATDATE(message.timestamp_date, "timestamp", "dd/MM/yyyy HH:mm:ss")}},

"simple_date_to_timestamp": {{ FORMATDATE(message.simple_date, "dd/MM/yyyy", "timestamp") }},

"iso_date_time": {{FORMATDATE(message.timestamp_date, "timestamp", null)}} ,

"date_month_name_pt_br": {{ FORMATDATE( NOW(), "timestamp", "dd/MMMM/yyyy", null, null, "pt-BR", null) }},

"date_time_utc" : {{FORMATDATE(message.date_time_utc, "yyyy-MM-dd'T'HH:mm:ss.SSSSSSS+SS:SS", "dd/MM/yyyy HH:mm:ss")}}

}

NOW

Utilizando Double Braces, você pode combinar a função com o acesso ao elemento do JSON de entrada de um componente.

A função é aplicada para retornar o valor double de um número inteiro.

Sintaxe

NOW()
{

"now": {{ NOW() }},

"currentDate": {{FORMATDATE(NOW(), "timestamp", "yyyyMMdd", null, "GMT-3") }},

"currentTime": {{FORMATDATE(NOW(), "timestamp", "HHmmss", null, "GMT-3") }},

"tomorrow": {{ FORMATDATE( TOLONG( SUM(NOW(),86400000)), "timestamp", "yyyyMMdd") }},

"time5minBefore": {{ TOLONG( SUBTRACT( NOW(), TOLONG("300000"))) }}

}

O retorno dessa função será a data atual em milissegundos.

SUMDATE

Utilizando Double Braces, você pode combinar a função com o acesso ao elemento do JSON de entrada de um componente.

A função retorna a soma ou subtração de uma determinada data e hora dada uma unidade de tempo.

Sintaxe

SUMDATE(milliseconds:number, unit:string, value:string)

milliseconds: timestamp

unit: unidade de tempo (valores aceitos: hora, minuto, segundo, dia, mês e ano)

value: valores de data e hora a serem adicionados

zoneId: zona da data informada (padrão: UTC)

As zonas aceitas (UTC) são:

  • Australia/Darwin

  • Australia/Sydney

  • America/Argentina/Buenos_Aires

  • Africa/Cairo

  • America/Anchorage

  • America/Sao_Paulo

  • Asia/Dhaka

  • Africa/Harare

  • America/St_Johns

  • America/Chicago

  • Asia/Shanghai

  • Africa/Addis_Ababa

  • Europe/Paris

  • America/Indiana/Indianapolis

  • Asia/Kolkata

  • Asia/Tokyo

  • Pacific/Apia

  • Asia/Yerevan

  • Pacific/Auckland

  • Asia/Karachi

  • America/Phoenix

  • America/Puerto_Rico

  • America/Los_Angeles

  • Pacific/Guadalcanal

  • Asia/Ho_Chi_Minh

Digamos que você precise obter a data e hora somando à ela 10 segundos. Você pode fazer o seguinte:

{
"test": {{ SUMDATE (1599368565518, "SECOND", 10) }}
}

O resultado esperado será:

{
1599368565528
}

TOISODATE

Utilizando Double Braces, você pode combinar a função com o acesso ao elemento do JSON de entrada de um componente.

A função é aplicada para converter data e horário para ISO Date (incluindo a possibilidade de tratar o seu locale e timezone).

Sintaxe

TOISODATE(valor, "formatSource", "formatDestination", "locale"?, "timezone"?)

Os itens indicados com "?" podem ser definidos com valor null.

  • definição do formato da data: dd/MMMM/yyyy HH:mm:ss. Também é possível definir apenas a palavra 'timestamp'.

  • Se o timezone não for definido, será utilizado o UTC.

Valor de entrada:

{
"date": "10/10/2010 11:59:59",
"date_with_tz": "10/10/2010 11:59:59 GMT-03:00",
"localized_date_with_tz": "10/Outubro/2010 11:59:59 GMT-03:00",
"timestamp_date": "1564670039000",
"date_no_time": "30/09/2018"
}

Exemplos de conversões:

{

"forced_utc_no_locale": {{TOISODATE(message.date, "dd/MM/yyyy HH:mm:ss", null, "UTC")}},

"inferred_tz_no_locale": {{TOISODATE(message.date_with_tz, "dd/MM/yyyy HH:mm:ss z")}},

"localized_date_with_tz": {{TOISODATE(message.localized_date_with_tz, "dd/MMMM/yyyy HH:mm:ss z", "pt-BR")}},

"date_generated_from_timestamp": {{TOISODATE(message.timestamp_date, "timestamp")}},

"iso_datetime_from_date_only": {{TOISODATE(message.date_no_time, "dd/MM/yyyy", null, "GMT-3")}}

}

DIFFDATE

Essa função permite que você calcule a diferença de tempo entre duas datas.

Sintaxe

DIFFDATE(timestamp1, timestamp2, "timeUnit")
  • As datas a serem utilizadas devem estar no formato timestamp.

  • O parâmetro timeUnit aceita apenas os valores: year, month, day, hour, minute, second e millisecond.

  • O cálculo aplicado será: timestamp2 - timestamp1

Valores de entrada

{
"timestamp1": "1550458800000",
"timestamp2": "1613617200000"
}

Exemplos de aplicações

{

"years": {{ DIFFDATE(message.timestamp1, message.timestamp2, "year") }},

"months": {{ DIFFDATE(message.timestamp1, message.timestamp2, "month") }},

"hours": {{ DIFFDATE(message.timestamp1, message.timestamp2, "hour") }}

}

Obs.: Se a função receber 2 datas que tenham uma diferença menor que 1 com base na unidade de tempo informada, o resultado será 0. Se o parâmetro timestamp1 for maior que timestamp2, a função retornará a diferença negativa.

Outras funções

Conheça também:

Atualizado