如何在where条件下测试date是否为null

iyr7buue  于 2021-06-20  发布在  Mysql
关注(0)|答案(3)|浏览(351)

我需要在where条件下测试日期是否不为null:

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 可以为空。

ht4b089n

ht4b089n1#

SELECT * FROM employe WHERE date IS NOT NULL AND (date > ? AND date < ?)

我们首先检查日期是否为空。如果此条件为真,则它将检查日期是否在范围内。

brqmpdu1

brqmpdu12#

只是为了测试 date 如果不为null,您将执行以下操作:

where date is not null

但是,对于条件,您可以执行以下操作:

where date >= ? and date <= ?

null 值永远不能满足条件,因此它隐式地执行 null 检查。

mutmk8jj

mutmk8jj3#

你不需要检查 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。

相关问题