我正在尝试运行以下查询我发现一个非数字字符被发现,这里的数字是预期的查询
select * from schedule where to_date(SHDL_STRT_TIME,'dd-MON-yy HH24:mi:ss')
IN('11-Jan-15 20:30:00','11-Jan-15 08:00:00','11-Jan-15 20:00:00')
和shdl_strt_time
属于DATE
类型的对象,它在sqldeveloper中工作正常但是从应用程序中无法正常工作
请澄清我哪里出错,任何帮助将不胜感激。谢谢
答案 0 :(得分:0)
SHDL_STRT_TIME
已经是[{1}}类型,因此您无需使用DATE
。
但是TO_DATE()
这就是你需要的东西!!!
同样TO_CHAR()
将月份设为MON
...因此,JAN
需要Mon
Jan
最后,优雅的解决方案可能是,
select * from schedule where to_char(SHDL_STRT_TIME,'dd-Mon-yy HH24:mi:ss')
IN('11-Jan-15 20:30:00','11-Jan-15 08:00:00','11-Jan-15 20:00:00')
在select * from schedule where SHDL_STRT_TIME IN(:DATE1, :DATE2, :DATE3)
中,使用JDBC
绑定值。因为,java.sql.Date
可能不是Mon
非美国数据库!此外,如果您对其执行Jan
,则可能会错过该索引。