คำสั่ง SQL นับวันไม่รวมเสาร์-อาทิตย์ และวันหยุด
ตัวอย่างคำสั่ง 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 )นะฮัฟ ...เพื่อมวลมนุษยชาติ
ติดปัญหาตอนทำตาม?
ถามในชุมชน
ความคิดเห็น (0)
ยังไม่มีความคิดเห็น — เริ่มคุยเป็นคนแรก ถามสิ่งที่สงสัย หรือแชร์ประสบการณ์ของคุณ
เข้าสู่ระบบเพื่อร่วมแสดงความคิดเห็น
เข้าสู่ระบบ