JDBC SQL选择两个日期之间的行

时间:2014-11-07 23:46:31

标签: sql jdbc

我有一张表格:

===========================================================================================
test_id | type_id | patient_no | employee_no | medical_lab | result | pre_date | test_date 
===========================================================================================

在结果集中检查时,日期具有以下形式:2014-07-23 00:00:00

这是我在语句对象中执行的字符串:

"SELECT DISTINCT TR.patient_no, P.name, TT.test_name, TR.test_date " +
"FROM patient P, test_type TT, test_record TR, doctor D " +
"WHERE TR.employee_no = " + doctorId +
"AND TR.type_id = TT.type_id " +
"AND P.health_care_no = TR.patient_no " +
"AND TRUNC(TR.prescribe_date) >= TO_DATE('" + initialDate + "', 'YYYY-MM-DD') " +
"AND TRUNC(TR.prescribe_date) <= TO_DATE('" + endDate + "', 'YYYY-MM-DD') " +
"ORDER BY TR.test_date ASC"

现在假设我有三行要返回(我只会在示例行中包含相关信息):

doctorId | prescriptionDate

12022,TO_DATE('2014-01-15','YYYY-MM-DD')
12022,TO_DATE('2014-07-15','YYYY-MM-DD')
12022,TO_DATE('2014-07-21','YYYY-MM-DD')

好的,所以我想在结果集中返回这三行。所以在我的测试中,我设置了这些变量并执行语句:

initialDate = "2014-01-15"
endDate = "2014-07-21"
doctorId = "12022"

但是,我的结果集只包含这两行的信息:

12022, 2014-07-15 00:00:00
12022, 2014-07-21 00:00:00

我一直试图解决这个问题,但我真的可以使用一些帮助。拜托,谢谢你。

P.S。我知道我的结果集看起来不像我在示例中给出的结果集;但是,我的结果集中的信息是从这两行派生的(对于给出的示例)。

编辑:尝试制作我的例子&#34; resultSet&#34;更清楚

1 个答案:

答案 0 :(得分:0)

问题不在我的查询中。问题在于我查看结果集的方式:

while(result.next()){
  //various print statement
}

所以,我总是跳过第一个结果...... facepalm 感谢你们的帮助,虽然isim。