Мне нужно проверить, если дата не равна нулю, когда условие:
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
может быть нулевой.
Вам не нужно делать чек для 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.
Чтобы проверить, не является ли date
недействительной, выполните следующие действия:
where date is not null
Однако для условий вы можете:
where date >= ? and date <= ?
null
значение никогда не может удовлетворять условиям, поэтому это неявно выполняет null
проверку.
SELECT * FROM employe WHERE date IS NOT NULL AND (date > ? AND date < ?)
Сначала проверяем, равна ли дата. Если это условие истинно, тогда он проверяет, находится ли дата внутри диапазона.