Как проверить, если дата равна нулю, где условие

0

Мне нужно проверить, если дата не равна нулю, когда условие:

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
    Просто к сведению, вам гораздо лучше использовать хранимые процедуры вместо жесткого кодирования операторов SQL в вашем Java-коде. Ссылка: asktom.oracle.com/pls/apex/…
Теги:
where
prepared-statement

3 ответа

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.

0

Чтобы проверить, не является ли date недействительной, выполните следующие действия:

where date is not null

Однако для условий вы можете:

where date >= ? and date <= ?

null значение никогда не может удовлетворять условиям, поэтому это неявно выполняет null проверку.

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

Сначала проверяем, равна ли дата. Если это условие истинно, тогда он проверяет, находится ли дата внутри диапазона.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню