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.
Um comentário:
Olá!
Parabéns pelo blog, tem muita coisa boa ai!
Só queria comentar que fiz alguns testes com o TDiff e percebi que ele não está considerando os segundos, dando uma bela diferença com o passar do tempo.
Abs
Postar um comentário