Ajustando campos Date para não gravar horário

Os campos do tipo "Date" nas tabelas do CIGAM, como regra, salvam somente a data sem o horário nos registros. Quando realizamos alguma operação de insert/update diretamente pelo banco de dados é necessário que façamos uma adequação deste tipo de campo para não gravar o horário junto (padrão dos bancos de dados Oracle e MSSQL). 

Os comandos que podemos usar para gravar da forma correta são os seguintes:

Para Oracle:
Obs.: Como vimos bastante simples, basta usar a função "trunc" de sysdate (que retorna a data atual) ou do campo de tipo date que quisermos ajustar.

Para MSSQL:
Obs.: Para MSSQL como podemos observar acima é um pouco mais complicado de converter, já que não existe a função trunc para datas. Desta forma se faz necessário utilizarmos uma combinação de funções de conversão: cast(floor(cast(getdate() as float)) as datetime).

Bom, trata-se de um post bastante simples, com o intuito de ajudar nestas situações onde podemos perder um certo tempo tentando ajustar as datas, ou ainda gravando diretamente com o horário, podendo comprometer, por exemplo, filtros de relatórios e outras rotinas que utilizam intervalos de datas.

Comentários

ISilveira disse…
Muito boa a dica Alecsandro... eu nunca parei pra ver isso, estudar descobrir como se faz.. mas quando vem assim "de graca" ksksks e uma maravilha...
showw abrass ai amigo
Silveira
Alexsandro Haag disse…
Obrigado Amigo.
Realmente é uma dica simples, mas como no CIGAM é muito comum precisarmos disso achei importante publicar aqui.

Tenho acompanhado teu blog também, tem umas automações muito legais ali. Era importante divulgar isso aqui na CIGAM. Não pensou em fazer uma visita aqui para demonstrar?

Abraço!

Postagens mais visitadas deste blog

[Openfire] - Ajuste de horário no cliente Spark

Verificar uso de disco em partição ASM do Oracle 11g no Linux

[Pentaho] - Criando uma Simples transformação para apagar tabelas de um esquema no Oracle