当在 PreparedStatement 中将 Java.Sql.Date 作为绑定变量(我的查询文本中的问号)传递给 nzjdbc.jar 时,我得到:
pg_atoi:“2010-02-01”中的错误:无法解析“-02-01”
是什么赋予了?我认为 JDBC 驱动程序的全部目的是解决这些问题 :(
好的,找到了答案,与JDBC无关。
将日期变量传递给 JDBC 时,它所做的只是将其转换为符合 Netezza 日期样式的文字字符串,例如 '2011-11-06 00:00:00'。它不会用 cast 或 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;
它的所有宇宙爱宝贝。