Friday, December 10, 2021

Convert UNIX epoch timestamp (bigint) to DateTime in SQL Server

ปกติ Timestamp จะใช้ format 2022-01-11T03:28:38Z

แต่ Unix timestamp จะเป็นตัวเลขหมดเลย เช่น 1641751802

แต่สิ่งที่เราอยากได้คือ DateTime แบบ yyyy-mm-dd hh:ii:ss.000

ก็ใช้คำสั่ง DateAdd

Select 
    dateadd(S, [unixtime], '1970-01-01')
From [Table]

เช่น Select dateadd(S, 1641751802, '1970-01-01') จะได้ 2022-01-09 18:10:02.000

ถ้าจะ convert กลับ จาก DateTime ให้กลายเป็น Unix time ก็ใช้คำส่ง DateDiff

Select DATEDIFF(SECOND,'1970-01-01',GETDATE())