การสร้างวันที่

การวิเคราะห์อนุกรมเวลาใน SQL Server

Maham Faisal Khan

Senior Data Science Content Developer

สิ่งที่จะได้เรียนรู้

  • การทำงานกับส่วนประกอบของวันที่
  • การแปลงสตริงเป็นวันที่ รวมถึง date-time offset และวันที่ไม่ถูกต้อง
  • การกรอง จัดกลุ่ม และรวมข้อมูลตามช่วงเวลา
  • การลดความละเอียดของข้อมูล (Downsampling)
  • การรวมค่าบน window
  • การเพิ่มความละเอียดของข้อมูล (Upsampling)
  • การคำนวณผลรวมสะสมและค่าเฉลี่ยเคลื่อนที่
  • การหาช่วงวันที่ที่ซ้อนทับกัน

นาฬิกาทราย   (Photo by Aron Visuals)

การวิเคราะห์อนุกรมเวลาใน SQL Server

การสร้างวันที่

SELECT
    GETDATE() AS DateTime_LTz,
    GETUTCDATE() AS DateTime_UTC;
SELECT
    SYSDATETIME() AS DateTime2_LTz
    SYSUTCDATETIME() AS DateTime2_UTC;

ผลลัพธ์:

DateTime_LTz DateTime_UTC DateTime2_LTz DateTime2_UTC
2019-03-07 21:21:33.670 2019-03-08 02:21:33.670 2019-03-07 21:21:33.6716402 2019-03-08 02:21:33.6716402
การวิเคราะห์อนุกรมเวลาใน SQL Server

การแยกส่วนประกอบของวันที่

DECLARE
    @SomeDate DATETIME2(3) = '2019-03-01 08:17:19.332';
SELECT YEAR(@SomeDate);
SELECT MONTH(@SomeDate);
SELECT DAY(@SomeDate);

YEAR = 2019

MONTH = 3

DAY = 1

การวิเคราะห์อนุกรมเวลาใน SQL Server

การแยกวันที่ด้วย date parts

ฟังก์ชัน

DATEPART()

SELECT
  DATEPART(YEAR, @dt) AS TheYear;

DATENAME()

SELECT
  DATENAME(MONTH, @dt) AS TheMonth;

ส่วนประกอบ

  • ปี / เดือน / วัน
  • วันที่ในปี
  • วันในสัปดาห์
  • สัปดาห์ในปี
  • สัปดาห์ ISO ในปี
  • นาที / วินาที
  • มิลลิวินาที / นาโนวินาที
การวิเคราะห์อนุกรมเวลาใน SQL Server

การบวกและลบวันที่

DECLARE
    @SomeTime DATETIME2(7) = '1992-07-14 14:49:36.2294852';

SELECT DATEADD(DAY, 1, @SomeTime) AS NextDay, DATEADD(DAY, -1, @SomeTime) AS PriorDay;
SELECT DATEADD(HOUR, -3, DATEADD(DAY, -4, @SomeTime)) AS Minus4Days3Hours;
NextDay PriorDay
1992-07-15 14:49:36.2294852 1992-07-13 14:49:36.2294852
Minus4Days3Hours
1992-07-10 11:49:36.2294852
การวิเคราะห์อนุกรมเวลาใน SQL Server

การเปรียบเทียบวันที่

DECLARE
    @StartTime DATETIME2(7) = '2012-03-01 14:29:36',
    @EndTime DATETIME2(7) = '2012-03-01 18:00:00';
SELECT
    DATEDIFF(SECOND, @StartTime, @EndTime) AS SecondsElapsed,
    DATEDIFF(MINUTE, @StartTime, @EndTime) AS MinutesElapsed,
    DATEDIFF(HOUR, @StartTime, @EndTime) AS HoursElapsed;
SecondsElapsed MinutesElapsed HoursElapsed
12624 211 4
การวิเคราะห์อนุกรมเวลาใน SQL Server

การปัดเศษวันที่

DECLARE @SomeTime DATETIME2(7) = '2017-05-12 16:25:16.2248991';

SELECT
    DATEADD(DAY, DATEDIFF(DAY, 0, @SomeTime), 0) AS RoundedToDay,
    DATEADD(HOUR, DATEDIFF(HOUR, 0, @SomeTime), 0) AS RoundedToHour,
    DATEADD(MINUTE, DATEDIFF(MINUTE, 0, @SomeTime), 0) AS RoundedToMinute;
RoundedToDay          RoundedToHour         RoundedToMinute
2017-05-12 00:00:00   2017-05-12 16:00:00   2017-05-12 16:25:00
การวิเคราะห์อนุกรมเวลาใน SQL Server

มาฝึกกันเถอะ!

การวิเคราะห์อนุกรมเวลาใน SQL Server

Preparing Video For Download...