Java SQL 语句没有给出错误,也没有结果集

标签 java sql database resultset

我的程序中有以下 SQL 语句:

"SELECT ANTAL_KALD,BESVARET_25_SEK,((BESVARET_25_SEK/nullif(ANTAL_KALD,0))*100) as answer_percent,TIDSPUNKT,QUEUE "
                +"FROM KS_DRIFT.PERO_NKM_KØ_OVERSIGT WHERE TIDSPUNKT BETWEEN '"+start.getYear()+"-"+start.getMonthOfYear()+"-"+start.getDayOfMonth()+
                "' AND '"+end.getYear()+"-"+end.getMonthOfYear()+"-"+end.getDayOfMonth()+
                "'";

这没有给我任何结果集

测试System.out.println(rs.next())false

但是,当我在数据库中写入以下内容时:

select QUEUE,
ANTAL_KALD,
BESVARET_25_SEK,
((BESVARET_25_SEK/nullif(ANTAL_KALD,0))*100) as answer_percent,
TIDSPUNKT
from KS_DRIFT.PERO_NKM_KØ_OVERSIGT Where TIDSPUNKT BETWEEN '2012-12-01' AND '2012-12-02' ORDER BY QUEUE

我得到结果..那么问题是什么?它没有给我错误或任何东西

最佳答案

假设startendjava.sql.Date对象(如果不是请转换),我建议你使用 PreparedStatementsetDate() 设置日期如下:

   String sql = "SELECT ANTAL_KALD,BESVARET_25_SEK, "+
               " ((BESVARET_25_SEK/nullif(ANTAL_KALD,0))*100) as answer_percent, "+
               " TIDSPUNKT,QUEUE "
               +"FROM KS_DRIFT.PERO_NKM_KØ_OVERSIGT "+
               " WHERE TIDSPUNKT BETWEEN ?  AND ?";
   PreparedStatement qStmt=connection.prepareStatement(sql);
   qStmt.setDate(1, start);
   qStmt.setDate(1, end);


   ResultSet rs = qStmt.executeQuery();

编辑:要从 Joda DateTime 对象获取 java.sql.Date,请执行以下操作:

   java.sql.Date startDate = new java.sql.Date(start.toDate().getTime());
   java.sql.Date endDate   = new java.sql.Date(end.toDate().getTime());

在查询中使用这些转换后的对象。

关于Java SQL 语句没有给出错误,也没有结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13765513/

相关文章:

c# - 将 varchar 日期显示为 D/M/Y?

database - 在 Visual Studio 中定义多个外键

java - java http 客户端如何验证服务器的 CA 证书?

java - 从 AsyncTask 中的 SharedPreferences 获取字符串,java.lang.NullPointerException

Java 异常,捕捉什么,不捕捉什么?

database - 任何用于索引和关联外部数据源内容的系统?

mysql - MySQL 数据库中 ISBN10 和 ISBN13 的最佳数据类型是什么

java - 选择文件的简单方法

java - 高分表

mysql - 限制使用不在查询中检查的行 - SQL