Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

รับวันทำงานที่ N ของเดือนจากคอลัมน์ที่มีระเบียน DATE ใน MySQL


เราจำเป็นต้องค้นหาวันทำงาน เช่น สัปดาห์ที่ 1 จากวันที่ 1 ถึง 7 สัปดาห์ที่ 2 จากวันที่ 8 ถึง 14 เป็นต้น หากต้องการทราบวัน ให้ใช้ฟังก์ชัน DAY() ใน MySQL กำหนดเงื่อนไขเพื่อรับวันทำงาน (ตัวเลข) โดยใช้คำสั่ง CASE

เรามาดูตัวอย่างและสร้างตารางกัน −

mysql> สร้างตาราง DemoTable ( AdmissionDate date); แบบสอบถามตกลง 0 แถวได้รับผลกระทบ (0.63 วินาที)

แทรกระเบียนบางส่วนในตารางโดยใช้คำสั่ง insert -

mysql> แทรกลงในค่า DemoTable ('2019-09-12'); Query OK, 1 แถวได้รับผลกระทบ (0.20 วินาที)mysql> แทรกลงในค่า DemoTable ('2019-09-06'); Query OK, 1 แถว ได้รับผลกระทบ (0.16 วินาที) mysql> แทรกลงในค่า DemoTable ('2019-09-26'); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.22 วินาที) mysql> แทรกลงในค่า DemoTable ('2019-09-30'); แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.14 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select -

mysql> เลือก *จาก DemoTable;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+--------------+| AdmissionDate |+--------------+| 2019-09-12 || 2019-09-06 || 2019-09-26 || 2019-09-30 |+--------------+4 แถวในชุด (0.00 วินาที)

ต่อไปนี้เป็นแบบสอบถามเพื่อรับวันทำงาน (ตัวเลข) ของเดือน -

mysql> เลือก ( CASE WHEN DAY (AdmissionDate) ระหว่าง 1 ถึง 7 แล้ว 1 เมื่อวัน (AdmissionDate) ระหว่าง 8 ถึง 14 แล้ว 2 เมื่อวัน (AdmissionDate) ระหว่าง 15 ถึง 21 จากนั้น 3 เมื่อวัน (AdmissionDate) ระหว่าง 22 ถึง 28 จากนั้น 4 อีก 5 สิ้นสุด) เป็น NthWeekDayOfMonth จาก DemoTable;

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

<ก่อนหน้า>+-------------------+| NthWeekDayOfMonth |+-------------------+| 2 || 1 || 4 || 5 |+-------------------+4 แถวในชุด (0.01 วินาที)