เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การเปรียบเทียบวันที่

เมื่อทำงานกับ timestamp บางครั้งอาจต้องการดึงข้อมูลทั้งหมดของวันใดวันหนึ่ง แต่ถ้าระบุเพียงแค่วันที่ในเงื่อนไขการเปรียบเทียบ อาจได้ผลลัพธ์ที่ไม่เป็นไปตามที่คาดไว้

คิวรีนี้:

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

คืนค่า 0 แม้ว่าจะมีคำร้อง 49 รายการในวันที่ 2 มกราคม 2018

เหตุผลคือเมื่อนำวันที่ไปเปรียบเทียบกับ timestamp ระบบจะแปลงวันที่เป็น timestamp โดยอัตโนมัติ โดยกำหนดค่าเวลาทั้งหมดเป็นศูนย์:

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

ควรระวังเรื่องนี้เมื่อต้องทำงานกับทั้ง timestamp และวันที่ร่วมกัน

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Exploratory Data Analysis ใน SQL

ดูคอร์ส

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

-- Count requests created on January 31, 2017
SELECT count(*) 
  FROM evanston311
 WHERE ___;
แก้ไขและรันโค้ด