Zacznij terazZacznij za darmo

Porównywanie dat

Pracując ze znacznikami czasu, często chcesz znaleźć wszystkie obserwacje z konkretnego dnia. Jeśli jednak w porównaniu podasz tylko datę, możesz otrzymać nieoczekiwane wyniki. Zapytanie:

SELECT count(*) 
  FROM evanston311
 WHERE date_created = '2018-01-02';

zwraca 0, mimo że 2 stycznia 2018 roku zarejestrowano 49 zgłoszeń.

Dzieje się tak, ponieważ daty są automatycznie konwertowane na znaczniki czasu podczas porównania z wartością typu timestamp. Pola czasu są wtedy ustawiane na zero:

SELECT '2018-01-02'::timestamp;
 2018-01-02 00:00:00

Pracując jednocześnie ze znacznikami czasu i datami, warto o tym pamiętać.

To ćwiczenie jest częścią kursu

Eksploracyjna analiza danych w SQL

Zobacz kurs

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

-- Count requests created on January 31, 2017
SELECT count(*) 
  FROM evanston311
 WHERE ___;
Edytuj i uruchom kod