การดึงค่าชั่วโมงจากข้อมูลเวลา
ทีมของคุณได้รับมอบหมายให้จัดทำรายงานสรุปเพื่อทำความเข้าใจว่าช่วงเวลาใดของวันที่มีการออกใบสั่งจอดรถมากที่สุด ฟิลด์ violation_time ถูกนำเข้าฐานข้อมูลในรูปแบบสตริงที่ประกอบด้วยชั่วโมง (ในรูปแบบ 12 ชั่วโมง) นาที และตัวระบุ AM/PM ของแต่ละการละเมิด ตัวอย่างเวลาที่จัดเก็บในฟิลด์นี้คือ '1225AM' สังเกตว่าไม่มีเครื่องหมายโคลอนและช่องว่างในรูปแบบนี้
ใช้ฟังก์ชัน TO_TIMESTAMP() พร้อมสตริงรูปแบบที่เหมาะสมเพื่อแปลง violation_time ให้เป็น TIMESTAMP จากนั้นดึงค่าชั่วโมงจากส่วน TIME ของ TIMESTAMP นั้น และนับจำนวนการละเมิดการจอดรถทั้งหมดแยกตามชั่วโมง การแปลงเป็นค่า TIME มีสาเหตุมาจากที่ violation_time ไม่มีข้อมูลวันที่
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การทำความสะอาดข้อมูลในฐานข้อมูล PostgreSQL
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
SELECT
-- Convert violation_time to a TIMESTAMP
___(___, ___)::TIME AS violation_time
FROM
parking_violation
WHERE
-- Exclude NULL violation_time
___ IS NOT ___;