Хорошо, нашел ответ, не связанный с 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;
это вселенская любовь, детка.