时,顺便Java.Sql.Date作为绑定变量(在我的查询文本问号)在PreparedStatement到nzjdbc.jar,我越来越:传递java.sql.date Netezza公司的jdbc驱动
pg_atoi:error in“2010-02-01”:can not parse“-02-01”
是什么给出的?我认为,一个JDBC驱动程序的全部目的就是要解决此类问题:(
时,顺便Java.Sql.Date作为绑定变量(在我的查询文本问号)在PreparedStatement到nzjdbc.jar,我越来越:传递java.sql.date Netezza公司的jdbc驱动
pg_atoi:error in“2010-02-01”:can not parse“-02-01”
是什么给出的?我认为,一个JDBC驱动程序的全部目的就是要解决此类问题:(
好了,找到了答案,没有涉及到JDBC。
当传递一个日期变量JDBC,它是所有翻译它到一个符合Netezza dateStyle的文字字符串,例如'2011-11-06 00:00:00',它没有用cast或to_date或任何东西包装它
然而,当你从任何Netezza客户端尝试select '2011-11-06 00:00:00' - 30
,你会得到一个pg-atoi分析错误,因为Netezza试图将该字符串解析为一个数字,而不是作为日期。
解决方案:select cast('2004-02-22 00:00:00.000' as date) - 30 as bla;
其全宇宙爱宝贝。
它让我感到困惑,Netezza jdbc驱动程序在将数据发送到数据库之前将日期转换为字符串... – Farzad 2014-06-04 01:05:59
我现在可以缩小范围。该问题仅在SQL以这种形式重现: ``select * from baa where start_date <=? - 30`` 并且在删除“ - 30”时不会重现。 我的猜测是:当你指定-30时,Netezza试图将绑定变量解析为日期以外的东西。 – ihadanny 2011-01-23 12:08:42