开发者社区> 问答> 正文

sql语句在sql developer中可以运行,JDBC中报错ORA-01861

一个非常奇怪的问题
语句如下:
SELECT * FROM T_BUILD_DAY where F_BUILDID = 'daa37e0b' and TO_DATE(substr(F_STARTTIME),'yyyy-MM-dd') = TO_DATE(substr('2015-10-03',1,10),'yyyy-MM-dd')

其中F_STARTTIME在表中的格式为 date
在sql developer中运行该语句完全没问题,但是在jdbc中却出现了问题
java.sql.SQLDataException: ORA-01861: 文字与格式字符串不匹配

我直接就凌乱了凌乱了啊

网上搜了好久,不少人说是to_date的问题,但是没人给出来解决的方法。。。。
screenshot
screenshot
/最终分割线*/
问题果然出在格式上,sql developer坑啊,你如何乱写他都会自动纠正成正确的格式,原因在这
screenshot
但是jdbc中就没那么好,jdbc中要采用原本的格式
后来我把语句改成了这个

SELECT * FROM T_BUILD_DAY where F_BUILDID = 'daa37e0b' and TO_DATE(substr(F_STARTTIME),'DD-MON-RR') = TO_DATE(substr('2015-10-03',1,10),'yyyy-MM-dd')
于是一切都可以了!

展开
收起
吴孟桥 2016-06-14 16:08:24 3047 0
1 条回答
写回答
取消 提交回答
  • 看看yyyy-MM-dd格式与表内的格式是否相同

    2019-07-17 19:37:59
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载