การเปรียบเทียบวันที่
เมื่อทำงานกับ 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 ___;