terça-feira, 7 de julho de 2009

Datetime

Manipular tipos de dados Datetime é simples, ao contrário do que parece, basta utilizar as funções corretas.

Genexus possibilita a definição de atributos do tipo Date e DateTime, e em ambos os casos, no momento da criação na tabela, pelo menos no SQL Server, o que se cria na verdade é um DateTime.

O ambiente proporciona ainda duas variáveis &Time (caracter) e &Today (date), que retornam a hora e data atual respectivamente, e que facilitam a vida na hora da programação. As funções de manipulação de Data e Hora em Genexus normalmente operam em modo texto, também com o intuito de facilitar a vida.

Datetime

No caso de Datetime temos a função NOW() que retorna a combinação de Data+Hora, e que pode ser armazenada em um atributo Datetime, inclusive se este for uma fórmula definida na estrutura.

Já para o caso de operações de soma ou subtração de períodos Datetime, temos duas funções:

  • &result = TAdd(&date1, &sec) Retorna em &result a soma entre a data &date1 mais a quantidade de segundos informado em &sec.
  • &result = TDiff(&date1, &date2) Retorna em &result a diferença (em segundos) das datas &date1 e &date2

Caso seu interesse seja horas, divida o resultado de TDiff por 3600, mas não se esqueça de declarar &result com casas decimais, como Numeric(5.1), por exemplo.

Mais simples que isso, só as constantes data e datetime utilizando #, para se criar datas conhecidas e diferentes da atual, mas isso é assunto para outra publicação.