Porovnávání dat
Při práci s časovými razítky (timestamps) někdy potřebuješ najít všechny záznamy za konkrétní den. Pokud ale při porovnávání zadáš pouze datum, můžeš dostat nečekané výsledky. Tento dotaz:
SELECT count(*)
FROM evanston311
WHERE date_created = '2018-01-02';
vrátí 0, přestože 2. ledna 2018 bylo evidováno 49 požadavků.
Důvod je ten, že při porovnávání s časovým razítkem se datum automaticky převede na timestamp. Časové složky se přitom nastaví na nulu:
SELECT '2018-01-02'::timestamp;
2018-01-02 00:00:00
Když pracuješ s timestamps i daty zároveň, měj tohle na paměti.
Toto cvičení je součástí kurzu
Průzkumná analýza dat v SQL
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
-- Count requests created on January 31, 2017
SELECT count(*)
FROM evanston311
WHERE ___;