Qual a melhor forma para manipular datas?

1 resposta
TeiTei

Galera to com uma bomba:

Tenho duas tabelas que armazenam em um campo datas a tabela a e a tabela b, mas assim eu tenho que fazer um tratamento para que nucna seja incluido datas repetidas em nenhuma das duas e nem na mesma ou seja se o dia 01/01/2009 na b nao podera conter na A e vice versa, e mais preciso identificar os domingos para manipular eles de uma forma diferente tbm, alguem aqui pode me dizer qual seria uma das melhores formas para faezr isso? vlw…por favor me ajudem estou sendo pressionado demais no meu trampo…vlwwwwwwwwww

1 Resposta

victorwss

Talvez alguma check constraint. Se bem que o cálculo parece ser muito complicado para fazer via check constraint.
Outra alternativa é usar triggers de insert e update nas tabelas para validar isso.

Se não quiser e/ou não puder mexer no BD e/ou preferir fazer no java:

Antes de um insert, faça dois selects em ambas as tabelas assim:
SELECT t.campo_data FROM tabelaA t where t.campo_data = ?
SELECT t.campo_data FROM tabelaB t where t.campo_data = ?
No ?, você coloca no PreparedStatement a data em questão. Daí é só dar um repetido = resultSet.next(). Não precisa ler o valor do result set.

No caso do update, complica  um pouquinho:

SELECT t.campo_data FROM tabelaA t where t.campo_data = ? AND NOT (t.pk = ?)

SELECT t.campo_data FROM tabelaB t where t.campo_data = ? AND NOT (t.pk = ?)

Esse AND NOT é para evitar que o próprio registro a ser atualizado seja encontrado.

Para saber se um Date é domingo, faça isso:boolean domingo = (new GregorianCalendar(data).get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY);

Espero ter ajudado.

Criado 30 de janeiro de 2009
Ultima resposta 30 de jan. de 2009
Respostas 1
Participantes 2