1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Phân tích Khám phá Dữ liệu bằng SQL

Connected

Bài tập

So sánh ngày

Khi làm việc với timestamp, đôi khi bạn muốn tìm tất cả bản ghi trong một ngày cụ thể. Tuy nhiên, nếu bạn chỉ dùng một giá trị date trong phép so sánh, bạn có thể nhận kết quả không như mong đợi. Truy vấn sau:

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

trả về 0, dù thực tế có 49 yêu cầu vào ngày 2 tháng 1 năm 2018.

Lý do là khi so sánh với một timestamp, giá trị date sẽ tự động được chuyển sang timestamp. Các trường thời gian đều được đặt về 0:

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

Khi làm việc đồng thời với timestamp và date, bạn cần ghi nhớ điều này.

Hướng dẫn 1/3

undefined XP
  • 1
    • Đếm số yêu cầu Evanston 311 được tạo vào ngày 31/01/2017 bằng cách ép kiểu date_created sang date.
  • 2
    • Đếm số yêu cầu Evanston 311 được tạo vào ngày 29/02/2016 bằng cách dùng toán tử >= và <.
  • 3
    • Đếm số yêu cầu được tạo vào ngày 13/03/2017.
    • Xác định cận trên bằng cách cộng 1 vào cận dưới.