Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

SYSUTCDATETIME () so với GETUTCDATE () trong SQL Server:Sự khác biệt là gì?

SYSUTCDATETIME()GETUTCDATE() là hai hàm ngày / giờ T-SQL có sẵn để sử dụng trong SQL Server. Các hàm này trả về ngày và giờ của máy tính mà phiên bản SQL Server đang chạy. Cả hai hàm đều trả về ngày và giờ dưới dạng giờ UTC (Giờ phối hợp quốc tế).

Vì vậy, cả hai chức năng đều làm điều tương tự. Gần như vậy.

Dưới đây là hai chức năng này khác nhau như thế nào:

  • GETUTCDATE() trả về giá trị của nó dưới dạng ngày giờ giá trị.
  • SYSUTCDATETIME() trả về giá trị của nó dưới dạng datetime2 giá trị.

Điều này có nghĩa là SYSUTCDATETIME() cung cấp nhiều giây chính xác hơn. datetime2 loại dữ liệu cũng có phạm vi lớn hơn datetime .

Ví dụ

Dưới đây là một ví dụ để chứng minh giá trị được trả về bởi mỗi hàm:

SELECT 
    GETUTCDATE() AS GETUTCDATE,
    SYSUTCDATETIME() AS SYSUTCDATETIME;

Kết quả:

+-------------------------+-----------------------------+
| GETUTCDATE              | SYSUTCDATETIME              |
|-------------------------+-----------------------------|
| 2018-06-13 11:04:55.237 | 2018-06-13 11:04:55.2396676 |
+-------------------------+-----------------------------+

Vì vậy, điều này tương tự như sự khác biệt giữa SYSDATETIME()GETDATE() .

Tôi nên sử dụng cái nào?

Microsoft khuyến nghị chúng tôi sử dụng datetime2 với các giá trị ngày / giờ của chúng tôi. Kiểu dữ liệu này phù hợp với tiêu chuẩn SQL và dễ di động hơn datetime .

Do đó, hãy sử dụng SYSUTCDATETIME() trừ khi bạn có lý do cụ thể để không.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bản phát hành mới:Gói điều chỉnh Spotlight 7.1.9

  2. Trả lại đặc quyền cột từ một máy chủ được liên kết trong SQL Server (Ví dụ T-SQL)

  3. Hàm LEN không bao gồm dấu cách ở cuối trong SQL Server

  4. Tạo trình kích hoạt DML trong SQL Server

  5. Xây dựng mô hình học máy với SQL Server, ML.NET và C #