始める無料で始める

日付の比較

タイムスタンプを扱う際、特定の日付のデータをすべて取得したい場合があります。しかし、比較式に日付のみを指定すると、意図しない結果になることがあります。次のクエリを見てみましょう。

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 ___;
コードを編集して実行