W bazach danych "puste" pole daty najczęściej oznacza brak wartości, czyli NULL. Tego stanu nie sprawdza się operatorem "=" (równość), tylko specjalnym predykatem IS NULL. Dlatego poprawna kwerenda musi:
- użyć UPDATE do modyfikacji istniejących rekordów,
- ustawić kolumnę dataPlatnosci na bieżącą datę (funkcja typu CURDATE() w popularnych dialektach),
- ograniczyć zakres zmian do rekordów, gdzie data nie jest wpisana, czyli WHERE dataPlatnosci IS NULL.
Odpowiedź z CURTIME() jest błędna w tym zadaniu, ponieważ wstawia czas, a nie datę (a typ kolumny daty może nie przyjąć wartości czasu lub spowoduje niepożądane konwersje). Zapytanie aktualizujące rekord "WHERE id = 3" też nie spełnia wymagania, bo obejmuje tylko jeden wskazany wiersz, a celem jest uzupełnienie wszystkich brakujących pól na koniec dnia.
Warunek IS NOT NULL działa odwrotnie niż potrzeba: wybrałby rekordy już uzupełnione i nadpisał prawidłowe dane bieżącą wartością, co jest typowym błędem logicznym w kwerendach masowych.
Wariant z porównaniem do wartości w stylu "0000-00-00" bywa spotykany w niektórych bazach/ustawieniach, ale nie jest równoważny z NULL i nie wynika wprost z treści zadania. Egzaminacyjnie kluczowe jest rozpoznanie, że "niewypełnione" pole w relacyjnej bazie danych modeluje się jako NULL i filtruje przez IS NULL.
Wskazówka praktyczna: przed wykonaniem UPDATE w systemie produkcyjnym warto najpierw wykonać SELECT z tym samym warunkiem WHERE, aby sprawdzić liczbę rekordów, które zostaną zmienione.