เริ่มจุลศักราชใหม่


คำสั่ง SQL นับวันไม่รวมเสาร์-อาทิตย์ และวันหยุด

คู่มือการเรียนรู้ SQL Statement

บทเรียนดีๆ สำหรับผู้ที่ต้องการแบ่งปัน บทเรียนของคุณอาจมีค่าสำหรับอีกหลายๆ คน

beta version

คำสั่ง SQL นับวันไม่รวมเสาร์-อาทิตย์ และวันหยุด

มานพ กองอุ่น sql นับจำนวนวัน 1,023

ตัวอย่างคำสั่ง SQL เพื่อนับจำนวนวันโดยไม่รวมวันเสาร์-อาทิตย์ และวันหยุด

SELECT DATEDIFF(d, '2017-01-01', '2017-01-31') - DATEDIFF(wk, '2017-01-01', '2017-01-31') * 2 - CASE WHEN DATENAME(dw, '2017-01-01') 
                         <> 'Saturday' AND DATENAME(dw, '2017-01-31') = 'Saturday' THEN 1 WHEN DATENAME(dw, '2017-01-01') = 'Saturday' AND DATENAME(dw, '2017-01-31') <> 'Saturday' THEN - 1 ELSE 0 END - 2 AS date_count

ตัวอย่างนี้จะนับจำนวนวันในเดือนมกราคมปี 2017 ซึ่งมีวันหยุด 2 วัน (...END - 2 )

ผลลัพท์ date_count = 20

หมายเหตุ วันหยุด จำนวน 2 วัน (...END - 2 ) นั้น เราสามารถสร้างตารางในการเก็บวันหยุด แล้ว SELECT COUNT() มาได้ เช่น ตารางชื่อ hr_day_off

 (SELECT        COUNT(*) AS Expr1
                               FROM            dbo.hr_day_off AS day_off
                               WHERE        (day_off.off_at BETWEEN '2017-01-01' AND '2017-01-31') AND (DATENAME(dw, day_off.off_at) <> 'Saturday') AND (DATENAME(dw, day_off.off_at) <> 'Sunday'))

เอาคำสั่งนี้แทนเลข 2 (...END - 2 )นะฮัฟ ...เพื่อมวลมนุษยชาติ


หากบทเรียนรู้มีความผิดพลาดประการใด หรือมีข้อเสนอแนะกรุณาแจ้ง contact@programmerthailand.com
มานพ กองอุ่น

มานพ กองอุ่น
admin

  • 2 เพื่อน
  • 8 ผู้ติดตาม
  • 754 โพสต์
กลับขึ้นบน