O uso do timestamp!

Bom dia

Por que a galera insiste em usar timestamp se date time faz o mesmo?

Tem um arquiteto aqui que insiste em usar timestamp, por isso MY GOD. :?:

Alguem pode me explicar ?

:smiley:

Date ( em banco de dados SQL-compliant ) tem diversos comportamentos, implementados de maneiras diferentes por diferentes bancos. É quase impossível dizer se um date vai ser igual, não semelhante, ao outro até mesmo dentro do mesmo banco. Timestamp tem um comportamento único, é um long derivado do locale do servidor. É mais barato, e garantido, devolver um timestamp do que um date.

Adendo: Além de delegar o trabalho de garantir que as datas do sistema estarão sempre correspondentes ao mesmo locale à lógica do sistema.

Até!

maquiavelbona voce aqui tambem. Beleza.

É mais barato no que ? Em futuros problemas que podem ocorre.

timestamp se modela de acordo com o locale.

eu fazendo isso

PreparedStatement pre = con.prepareStatement("insert into aluno(nome, idade, ns) values(?, ?, ?)"); pre.setString(1, "FABIO"); pre.setString(2, "21"); pre.setObject(3, new Timestamp(2007,10,10,10,14,10,10));

no banco fica assim : 1 FABIO 21 10/11/3907 10:14:10
por que este ano ?

ve se voce da uma solucao para o meu problema de enviar e-mail. Obrigado :smiley:

Ja saquei :

pre.setObject(3, new Timestamp(2007 - 1900,10,10,10,14,10,10));

é isso?

Oui. De acordo com a documentação, o timestamp começa em 1/1/1900 00:00:00.

É mais barato para você, que não vai ter que ficar se descabelando pelos retornos malucos de cada banco, é mais barato para o banco na hora de processar e é mais barato na hora de consolidar várias datas diferentes.

Para ajudar no que eu tentei dizer no respeito ao tratamento no banco de dados:
http://www.dba-oracle.com/oracle_news/2006_03_22_understand_diferences_date_timestamp_columns.htm
http://www.postgresql.org/docs/techdocs.13
http://dev.mysql.com/doc/refman/5.0/en/datetime.html

Ou seja, se você for inventar de gravar no banco um DATE, senta e chora se for passar para outro banco sem mudar nada.

Até!

Só corrigindo: De acordo com a documentação a data referência é 01/01/1970 00:00:00.