การปัดเศษวันที่
SQL Server ไม่มีวิธีที่ตรงไปตรงมาในการปัดวันที่ลงไปยังระดับเดือน ชั่วโมง หรือนาที อย่างไรก็ตาม สามารถใช้ฟังก์ชัน DATEADD() และ DATEDIFF() ร่วมกันเพื่อทำการปัดเศษได้
ตัวอย่างเช่น หากต้องการปัดวันที่ 1914-08-16 ลงไปยังระดับปี ให้เรียก DATEADD(YEAR, DATEDIFF(YEAR, 0, '1914-08-16'), 0)
หากต้องการปัดลงไปยังระดับเดือน ให้เรียก DATEADD(MONTH, DATEDIFF(MONTH, 0, '1914-08-16'), 0)
วิธีนี้ใช้ได้กับส่วนของวันที่อื่น ๆ อีกหลายรูปแบบเช่นกัน
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การวิเคราะห์อนุกรมเวลาใน SQL Server
คำแนะนำการฝึกหัด
- ใช้
DATEADD()และDATEDIFF()ร่วมกับส่วนของวันที่ เพื่อปัดค่าเวลาลงไปยังระดับวัน ชั่วโมง และนาที
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
DECLARE
@SomeTime DATETIME2(7) = '2018-06-14 16:29:36.2248991';
-- Fill in the appropriate functions and date parts
SELECT
DATEADD(___, DATEDIFF(DAY, 0, @SomeTime), 0) AS RoundedToDay,
___(___, ___(___, 0, @SomeTime), 0) AS RoundedToHour,
___(___, ___(___, 0, @SomeTime), 0) AS RoundedToMinute;