我需要测试条件中日期是否不为空
String query = "SELECT * FROM employe WHERE date IS NOT NULL date > ? AND date IS NOT NULL date < ? ";
PreparedStatement statement = connessione_db.prepareStatement(query);
statement.setDate(1, data_interval_1);
statement.setDate(1, data_interval_2);
date
必须在data_interval_1
和data_interval_2
之间,并且data_interval_1
和data_interval_2
可以为空。
答案 0 :(得分:0)
只需测试date
是否不为空,您就可以这样做:
where date is not null
但是,对于条件,您可以执行以下操作:
where date >= ? and date <= ?
null
值永远无法满足条件,因此将隐式进行null
检查。
答案 1 :(得分:0)
您不需要对NULL
进行检查,因为如果日期为NULL
,则范围检查将自动失败。试试这个版本:
String query = "SELECT * FROM employe WHERE date > ? AND date < ?";
PreparedStatement statement = connessione_db.prepareStatement(query);
statement.setDate(1, data_interval_1);
statement.setDate(2, data_interval_2);
注意:在上面的代码中,您将两个间隔日期绑定到同一位置。您想同时绑定到位置1和2。
答案 2 :(得分:0)
SELECT * FROM employe WHERE date IS NOT NULL AND (date > ? AND date < ?)
我们首先检查日期是否为空。 如果此条件成立,它将检查日期是否在范围内。