微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 Java 调用 oracle 数据库时,TO_DATE ('01/01/1980','dd/mm/yyyy') 不起作用

如何解决从 Java 调用 oracle 数据库时,TO_DATE ('01/01/1980','dd/mm/yyyy') 不起作用

sql Navigator(Oracle) 中,以下三个查询正在运行

SELECT * FROM some_table a where TO_DATE (A.CREATE_DATE,'dd/mm/yyyy') BETWEEN TO_DATE ('01/01/1980','mm/dd/yyyy') AND TO_DATE ('01/01/2021','mm/dd/yyyy') AND rownum<5   
SELECT * FROM some_table a where TO_DATE (A.CREATE_DATE,'dd/mm/yyyy') AND TO_DATE ('01/01/2021','dd/mm/yyyy') AND rownum<5   
SELECT * FROM some_table a WHERE TO_DATE(A.CREATE_DATE,'dd-MON-yyyy') BETWEEN TO_DATE ('01-JAN-1980','dd-MON-yyyy') AND TO_DATE ('01-JAN-2021','dd-MON-yyyy') AND rownum<5
SELECT * FROM some_table a where TO_DATE (A.CREATE_DATE,'DD/MM/YYYY') BETWEEN TO_DATE ('01/01/1980','DD/MM/YYYY') AND TO_DATE ('01/01/2021','DD/MM/YYYY') AND rownum<5

在 Oracle DB 中,日期格式为 '15-Sep-2020 10:22:23'

但是当使用 ojdbc7-12.1.0.2.jar 驱动程序从 Java 运行代码时,我没有得到任何结果

当我删除 where 条件时(SELECT * FROM acadmin.ctmgmt_call_info a where rownum

    Class.forName("oracle.jdbc.driver.OracleDriver");
    Connection con = DriverManager.getConnection("url","username","pwd");
    Statement stmt = con.createStatement();
    ResultSet rs = stmt.executeQuery(query);
    while (rs.next())
    {
        System.out.println(rs.getString(1));
    }
        

如何让它在日期条件下工作?

解决方法

我能够通过用 A.CREATE_DATE 替换 TO_DATE (A.CREATE_DATE,'dd/mm/yyyy') 来解决这个问题

SELECT * FROM some_table A where A.CREATE_DATE BETWEEN TO_DATE ('01/01/1980','dd/mm/yyyy') AND TO_DATE ('01/01/2021','dd/mm/yyyy') AND rownum

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。