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
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 ___;