การจัดรูปแบบวันที่สำหรับการรายงาน

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

Maham Faisal Khan

Senior Data Science Content Developer

ฟังก์ชันจัดรูปแบบ

CAST()

CONVERT()

FORMAT()

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

ฟังก์ชัน CAST()

  • รองรับตั้งแต่ SQL Server 2000 เป็นอย่างน้อย
  • แปลงชนิดข้อมูลหนึ่งไปยังอีกชนิด รวมถึงชนิดวันที่
  • ไม่สามารถควบคุมรูปแบบเมื่อแปลงวันที่เป็น string
  • เป็นมาตรฐาน ANSI SQL ซึ่งฐานข้อมูลเชิงสัมพันธ์และไม่ใช่เชิงสัมพันธ์ส่วนใหญ่รองรับฟังก์ชันนี้
การวิเคราะห์อนุกรมเวลาใน SQL Server

การใช้ฟังก์ชัน CAST()

DECLARE
    @SomeDate DATETIME2(3) = '1991-06-04 08:00:09',
    @SomeString NVARCHAR(30) = '1991-06-04 08:00:09',
    @OldDateTime DATETIME = '1991-06-04 08:00:09';
SELECT
    CAST(@SomeDate AS NVARCHAR(30)) AS DateToString,
    CAST(@SomeString AS DATETIME2(3)) AS StringToDate,
    CAST(@OldDateTime AS NVARCHAR(30)) AS OldDateToString;
DateToString StringToDate OldDateToString
1991-06-04 08:00:09.000 1991-06-04 08:00:09.000 Jun 4 1991 8:00AM
การวิเคราะห์อนุกรมเวลาใน SQL Server

ฟังก์ชัน CONVERT()

  • รองรับตั้งแต่ SQL Server 2000 เป็นอย่างน้อย
  • ใช้แปลงชนิดข้อมูลหนึ่งไปยังอีกชนิด รวมถึงชนิดวันที่
  • ควบคุมรูปแบบการแปลงวันที่เป็น string ได้บ้างผ่าน style parameter
  • ใช้ได้เฉพาะ T-SQL
การวิเคราะห์อนุกรมเวลาใน SQL Server

การใช้ฟังก์ชัน CONVERT()

DECLARE
    @SomeDate DATETIME2(3) = '1793-02-21 11:13:19.033';
SELECT
    CONVERT(NVARCHAR(30), @SomeDate, 0) AS DefaultForm,
    CONVERT(NVARCHAR(30), @SomeDate, 1) AS US_mdy,
    CONVERT(NVARCHAR(30), @SomeDate, 101) AS US_mdyyyy,
    CONVERT(NVARCHAR(30), @SomeDate, 120) AS ODBC_sec;
GO
DefaultForm US_mdy US_mdyyyy ODBC_sec
Feb 21 1793 11:13 AM 02/21/93 02/21/1793 1793-02-21 11:13:19
การวิเคราะห์อนุกรมเวลาใน SQL Server

ตัวอย่าง style ของ CONVERT()

Style Code

  • 1 / 101
  • 3 / 103
  • 4 / 104
  • 11 / 111
  • 12 / 112
  • 20 / 120
  • 126
  • 127

รูปแบบ

  • สหรัฐอเมริกา m/d/y
  • อังกฤษ/ฝรั่งเศส d/m/y
  • เยอรมัน d.m.y
  • ญี่ปุ่น y/m/d
  • มาตรฐาน ISO yyyymmdd
  • มาตรฐาน ODBC (121 สำหรับ ms)
  • ISO8601 yyyy-mm-dd hh:mi:ss.mmm
  • yyyy-mm-ddThh:mi:ss.mmmZ
การวิเคราะห์อนุกรมเวลาใน SQL Server

ฟังก์ชัน FORMAT()

  • รองรับตั้งแต่ SQL Server 2012
  • ใช้จัดรูปแบบวันที่หรือตัวเลขสำหรับการรายงาน
  • ยืดหยุ่นในการจัดรูปแบบวันที่เป็น string มากกว่า CAST() หรือ CONVERT()
  • ใช้ได้เฉพาะ T-SQL
  • ใช้ .NET framework ในการแปลง
  • อาจช้าลงเมื่อประมวลผลข้อมูลจำนวนมาก
การวิเคราะห์อนุกรมเวลาใน SQL Server

การใช้ฟังก์ชัน FORMAT()

DECLARE
    @SomeDate DATETIME2(3) = '1793-02-21 11:13:19.033';
SELECT
    FORMAT(@SomeDate, 'd', 'en-US') AS US_d,
    FORMAT(@SomeDate, 'd', 'de-DE') AS DE_d,
    FORMAT(@SomeDate, 'D', 'de-DE') AS DE_D,
    FORMAT(@SomeDate, 'yyyy-MM-dd') AS yMd;
US_d DE_d DE_D yMd
2/21/1793 21.02.1793 Donnerstag, 21. February 1793 1793-02-21
การวิเคราะห์อนุกรมเวลาใน SQL Server

ฟังก์ชัน FORMAT() อาจทำงานช้ากว่า CAST() หรือ CONVERT() เมื่อใช้กับชุดข้อมูลขนาดใหญ่

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

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

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

Preparing Video For Download...