Лучше, чем? Этот запрос выполняет все, о чем вы просите, и, если есть индекс на datetime_field
, он выполняется так же быстро, как и собирается.
Если вы беспокоитесь о том, что запрос выглядит "безобразно", не беспокойтесь. Его цель совершенно ясна.
Единственное возможное улучшение, которое вы могли бы рассмотреть, - это использовать значения NULL для этих строк с нулевой датой / временем, и в этом случае ваш запрос становится:
SELECT * FROM `table` WHERE `datetime_field` IS NULL
Именно так я бы поступил со СУБД, соответствующей стандартам. Насколько я понимаю, MySQL может представлять истинные NULL поля даты и времени таким ужасным образом, и в этом случае я предполагаю, что IS NULL
может не работать.