Trong SQL Server, transact-sql SYSDATETIMEOFFSET()
hàm trả về datetimeoffset (7) giá trị chứa ngày và giờ của máy tính mà phiên bản SQL Server đang chạy. Giá trị này bao gồm độ lệch múi giờ.
Ví dụ về cách sử dụng bên dưới.
Cú pháp
Cú pháp như sau:
SYSDATETIMEOFFSET ( )
Vì vậy, bạn chỉ cần gọi hàm mà không có bất kỳ đối số nào.
Ví dụ
Đây là một ví dụ cơ bản:
SELECT SYSDATETIMEOFFSET() AS Result;
Kết quả:
Result ---------------------------------- 2018-06-17 09:55:27.3221853 +10:00
Trích xuất Chênh lệch múi giờ
Bạn có thể sử dụng DATEPART()
hàm trả về độ lệch múi giờ. Hàm này trả về một số nguyên đại diện cho độ lệch múi giờ tính bằng phút.
Ví dụ:
SELECT SYSDATETIMEOFFSET() AS 'Date/time', DATEPART(TZoffset, SYSDATETIMEOFFSET()) AS 'TZ Offset';
Kết quả:
Date/time TZ Offset ---------------------------------- ----------- 2018-06-17 10:04:23.2316409 +10:00 600
Bạn cũng có thể sử dụng hàm FORMAT () để trả về độ lệch múi giờ dưới dạng một chuỗi. Cụ thể, bạn có thể sử dụng z
, zz
và / hoặc zzz
các đối số để trả về nó ở định dạng bắt buộc.
Ví dụ:
SELECT SYSDATETIMEOFFSET() AS 'Date/time', FORMAT(SYSDATETIMEOFFSET(), 'zz') AS 'zz', FORMAT(SYSDATETIMEOFFSET(), 'zzz') AS 'zzz';
Kết quả:
Date/time zz zzz ---------------------------------- -------------- -------------- 2018-06-17 10:27:33.7314840 +10:00 +10 +10:00
Chuyển đổi giá trị trả lại
Bạn cũng có thể sử dụng các hàm như CONVERT()
để chuyển đổi giá trị trả về thành một kiểu dữ liệu khác. Đây là một ví dụ mà tôi chuyển đổi nó thành ngày tháng giá trị và thời gian giá trị:
SELECT CONVERT (date, SYSDATETIMEOFFSET()) AS 'Date', CONVERT (time, SYSDATETIMEOFFSET()) AS 'Time';
Kết quả:
Date Time ---------- ---------------- 2018-06-17 10:08:29.6377947
Tất nhiên, một khi chúng ta làm điều đó, chúng ta sẽ mất đi sự chênh lệch múi giờ.
Cũng xem TODATETIMEOFFSET()
điều này cho phép bạn nhận được datetimeoffset giá trị từ datetime2 biểu thức và SWITCHOFFSET()
cho phép bạn thay đổi độ lệch múi giờ.