Передача java.sql.date для драйвера netezza jdbc - PullRequest
2 голосов
/ 23 января 2011

При передаче Java.Sql.Date в качестве переменной связывания (знак вопроса в тексте моего запроса) в PreparedStatement в nzjdbc.jar я получаю:

pg_atoi: ошибка в "2010-02-01 ": не могу разобрать" -02-01 "

что дает?Я думал, что вся цель драйвера JDBC состоит в том, чтобы исправить такие проблемы: (

1 Ответ

2 голосов
/ 23 января 2011

Хорошо, нашел ответ, не связанный с JDBC.

При передаче переменной даты в JDBC все, что она делает, это переводит ее в буквенную строку, соответствующую Netezza dateStyle, например, «2011-11-06 00:00:00». Он не заключает в него приведение типа или to_date или что-либо еще.

Однако, когда вы пытаетесь select '2011-11-06 00:00:00' - 30 с любого клиента Netezza, вы получаете ошибку синтаксического анализа pg-atoi, поскольку Netezza пытается проанализировать строку как число, не как дату.

Решение: select cast('2004-02-22 00:00:00.000' as date) - 30 as bla;

это вселенская любовь, детка.

...