DATE_ADD do MySQL retornando String [RESOLVIDO]

2 respostas
A

Estou executando uma query no MySQL do tipo
SELECT
DATE_ADD (t.data1, INTERVAL 10 DAY) AS data_somada
FROM tabela t
WHERE t.id = 1;

O problema que estou tendo é que quando executo um ResultSet.getObject(“data_somada”)
em vez de retornar um objeto Date o rs está me retornando um String.

Para resolver o problema usei a função CAST() na query desta forma:
CAST(DATE_ADD (t.data1, INTERVAL 10 DAY) AS DATE) AS data_somada

Usando o CAST() o ResultSet passou a me retornar um objeto Date, como eu esperava antes.

O mais estranho é que este problema acontece apena quando o o query retorna apenas uma linha. Quando a query retorna mais de uma linha
(no caso, se eu tirasse o WHERE) o ResultSet retorna o objeto Date normalmente, sem necessidade do CAST().

Alguém saberia me dizer se existe alguma maneira de resolver isto sem ter que usar a função CAST() na query
ou isto é mesmo um bug do MySQL Connector?

Valeu!

2 Respostas

ze_kiefa

Não é BUG. Confira com mais detalhes em http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_date-add.

A última linha da explicação é exatamente a solução que você encontrou.

[]'s

A

Que falta de atenção a minha. Olhei várias vezes o manual da função e não reparei nisso.
Sendo assim vou ter que manter o CAST() .

Valeu pelo toque ze_kiefa.

Criado 8 de agosto de 2008
Ultima resposta 11 de ago. de 2008
Respostas 2
Participantes 2