การกรองข้อมูลตามค่าวันที่ถือเป็นเรื่องปกติเมื่อทำงานกับฐานข้อมูล ตัวอย่างเช่น สามารถช่วยให้เราดึงข้อมูลจากกรอบเวลาที่เฉพาะเจาะจง รวมผลลัพธ์ตามวันที่ที่กำหนด ระบุรูปแบบแนวโน้มในช่วงเวลาหนึ่ง และการดำเนินการอื่น ๆ ที่เกี่ยวข้องกับเวลา
จึงเป็นทักษะที่สำคัญสำหรับนักพัฒนาฐานข้อมูล SQL มีเครื่องมือมากมายในการกรองวันที่ภายในชุดข้อมูลที่กำหนด
เข้าร่วมกับเราในโพสต์นี้ในขณะที่เราสำรวจวิธีการและเทคนิคต่างๆ ที่เราสามารถใช้เพื่อกรองวันที่ในโลกของ SQL
ข้อกำหนดเบื้องต้น:
ก่อนที่เราจะเจาะลึกตัวอย่างและการใช้งานจริง ให้เราแจกแจงสิ่งที่คุณต้องการสำหรับตัวอย่างนี้ก่อน
ในโพสต์นี้ เราจะพยายามปฏิบัติตามวิธีการที่สามารถนำไปใช้กับฐานข้อมูล SQL เกือบทั้งหมดได้ อย่างไรก็ตาม เพื่อวัตถุประสงค์ในการสาธิต เราใช้ MySQL เวอร์ชัน 8 กับฐานข้อมูลตัวอย่าง Sakila
อย่างไรก็ตาม คุณสามารถดาวน์โหลดและใช้ชุดข้อมูลใดก็ได้ที่คุณต้องการได้ฟรี เราจะชี้ให้เห็นอย่างแน่นอนว่าวิธีการที่ให้มาสามารถทำงานในฐานข้อมูลอื่นได้หรือไม่ และเสนอทางเลือกอื่นหากมี
กรองวันที่ที่ระบุ
การดำเนินการกรองวันที่ขั้นพื้นฐานที่สุดคือจุดที่เราต้องดึงข้อมูลบันทึกหรือหลายบันทึกสำหรับวันที่ที่ระบุ
ในกรณีเช่นนี้ เราสามารถใช้คำสั่งย่อย WHERE ตามด้วยคอลัมน์วันที่และค่าวันที่จริงที่เราต้องการดึงข้อมูล
ตัวอย่างเช่น สมมติว่าเราต้องการค้นหาบันทึกการเช่าที่เกิดขึ้นในวันที่ 24 พฤษภาคม พ.ศ. 2548 เราสามารถเรียกใช้แบบสอบถามได้ดังนี้:
เลือก *จาก การเช่า
โดยที่ rent_date = '2005-05-24 23:03:39' ;
ในกรณีนี้ เราจะระบุวันที่ที่ต้องการกรองเป็นค่าการประทับเวลา เนื่องจากคอลัมน์ 'rental_date' เก็บค่าเป็นการประทับเวลา
กรองช่วงวันที่
การดำเนินการทั่วไปประการที่สองคือการกรองข้อมูลตามช่วงวันที่ที่ระบุ ตัวอย่างเช่น สมมติว่าเราต้องการดึงข้อมูลการเช่าที่เกิดขึ้นระหว่างเดือนพฤษภาคม 2548 ถึงมิถุนายน 2548
เราสามารถเรียกใช้แบบสอบถามได้ดังนี้:
เลือก*
จาก
เช่า
ที่ไหน
เช่า_วันที่ระหว่าง '2005-04-01 00:00:00' และ '2005-06-01 00:00:00' ;
ในกรณีนี้ เราใช้ตัวดำเนินการ AND เพื่อรวมค่าสองค่าเข้าด้วยกัน ส่วนคำสั่ง WHERE ถูกใช้โดยที่ค่าใดๆ จากคอลัมน์ 'rental_date' ต้องอยู่ระหว่างสองช่วง
ตัวอย่างผลลัพธ์จะเป็นดังนี้:
กรององค์ประกอบวันที่
ในกรณีอื่นๆ แทนที่จะใช้ช่วงวันที่โดยใช้ค่าตามตัวอักษร เราสามารถแยกส่วนประกอบวันที่ที่ระบุออกจากค่าและกรองตามนั้นได้
ตัวอย่างเช่น แทนที่จะระบุตั้งแต่ 2005-04-01 และ 2005-06-01 เราสามารถแยกเดือนพฤษภาคมและกรองข้อมูลใดๆ ที่อยู่ภายในเดือนนั้นได้
ใน MySQL เราสามารถใช้ฟังก์ชันเช่นฟังก์ชัน MONTH() เพื่อให้บรรลุเป้าหมายนี้ ดังแสดงในตัวอย่างต่อไปนี้:
เลือก*
จาก
เช่า
ที่ไหน
เดือน ( เช่า_วันที่ ) = 5 ;
ในกรณีนี้ MONTH(rent_date) จะแยกส่วนของเดือนออกจากวันที่ จากนั้นเราสามารถใช้ค่านี้กรองโดยที่ค่าเท่ากับ 5 พฤษภาคม
บทสรุป
ในบทช่วยสอนนี้ เราได้เรียนรู้เกี่ยวกับงานพื้นฐานและงานทั่วไปงานหนึ่งใน SQL โดยที่เรากรองข้อมูลตามค่าวันที่ เราเรียนรู้วิธีการแยกส่วนประกอบต่างๆ จากวันที่ และใช้เพื่อกรองวันที่และอื่นๆ