如何在where条件下测试日期是否为空
How test if date is null in where condition
我需要在 where 条件下测试日期是否不为空:
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
可以为空。
只是为了测试 date
是否不为空,您可以这样做:
where date is not null
但是,对于条件,你可以这样做:
where date >= ? and date <= ?
一个 null
值永远不会满足条件,所以这隐含地做了一个 null
检查。
您不需要对 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。
SELECT * FROM employe WHERE date IS NOT NULL AND (date > ? AND date < ?)
我们首先检查日期是否为空。
如果此条件为真,则它将检查日期是否在范围内。
我需要在 where 条件下测试日期是否不为空:
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
可以为空。
只是为了测试 date
是否不为空,您可以这样做:
where date is not null
但是,对于条件,你可以这样做:
where date >= ? and date <= ?
一个 null
值永远不会满足条件,所以这隐含地做了一个 null
检查。
您不需要对 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。
SELECT * FROM employe WHERE date IS NOT NULL AND (date > ? AND date < ?)
我们首先检查日期是否为空。 如果此条件为真,则它将检查日期是否在范围内。