日付の比較
タイムスタンプを扱う際、特定の日付のデータをすべて取得したい場合があります。しかし、比較式に日付のみを指定すると、意図しない結果になることがあります。次のクエリを見てみましょう。
SELECT count(*)
FROM evanston311
WHERE date_created = '2018-01-02';
このクエリは 0 を返します。2018年1月2日には49件のリクエストがあったにもかかわらずです。
これは、日付をタイムスタンプと比較する際に、日付が自動的にタイムスタンプに変換されるためです。時刻フィールドはすべてゼロに設定されます。
SELECT '2018-01-02'::timestamp;
2018-01-02 00:00:00
タイムスタンプと日付を組み合わせて使う場合は、この点に注意しましょう。
この演習はコースの一部です
SQLによる探索的データ分析
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
-- Count requests created on January 31, 2017
SELECT count(*)
FROM evanston311
WHERE ___;