无效的列类型查询

时间:2018-08-23 20:13:56

标签: sql oracle exception

陷入尝试使此oracle数据库查询正常工作的麻烦。我试图从表中提取前端选择的日期之间的所有记录。

查询:

SELECT *
FROM (
    SELECT *
    FROM COMPRATER_REQUESTS
    WHERE VendorName = ?
        AND EFFECTIVEDATE >= TO_DATE(?, 'yyyy/mm/dd')
        AND EFFECTIVEDATE <= TO_DATE(?, 'yyyy/mm/dd')
    )
WHERE ROWNUM <= 100

传递给占位符的参数为:

参数:[沃尔玛,2018年6月19日星期二00:00:00 EDT,2018年10月23日星期二00:00:00 EDT]

我一直回想的错误是:

  

错误消息:查询HVQ DB时发生异常。
  异常堆栈跟踪:java.sql.SQLException:无效的列类型Query

1 个答案:

答案 0 :(得分:0)

您输入的日期字符串与您在TO_DATE中指定的格式不匹配。

参数:

Walmart, 
Tue Jun 19 00:00:00 EDT 2018, 
Tue Oct 23 00:00:00 EDT 2018

根据您的查询:

AND EFFECTIVEDATE >= TO_DATE(?, 'yyyy/mm/dd')
AND TO_DATE(?, 'yyyy/mm/dd')

我认为,因为那里有一个时区,所以需要使用to_timestamp_tz函数。

'DY MON DD HH24:MI:SS TZD YYYY'