НачатьНачать бесплатно

Сравнение дат

При работе с метками времени иногда требуется найти все записи за определённый день. Однако если в условии сравнения указать только дату, результат может оказаться неожиданным. Этот запрос:

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

вернёт 0, хотя 2 января 2018 года было зарегистрировано 49 обращений.

Происходит это потому, что при сравнении с меткой времени дата автоматически преобразуется в тип timestamp. При этом все поля времени устанавливаются в ноль:

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

При работе с метками времени и датами одновременно это важно учитывать.

Это упражнение является частью курса

Разведочный анализ данных в SQL

Посмотреть курс

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

-- Count requests created on January 31, 2017
SELECT count(*) 
  FROM evanston311
 WHERE ___;
Редактировать и запускать код