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

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

SQL Server có một loạt các hàm trả về ngày / giờ hiện tại. Hai trong số này là GETDATE()SYSDATETIME() các chức năng.

Thoạt nhìn, hai hàm này có vẻ hoạt động giống nhau - lấy ngày và giờ hiện tại từ hệ điều hành của máy tính mà phiên bản SQL Server đang chạy.

Tuy nhiên, có một sự khác biệt nhỏ giữa hai điều này.

Sự khác biệt? Loại giá trị trả lại

Sự khác biệt chính giữa GETDATE()SYSDATETIME() thuộc loại giá trị trả về.

  • GETDATE() trả về ngày giờ giá trị.
  • SYSDATETIME() trả về datetime2 (7) giá trị.

Điều này có nghĩa là SYSDATETIME() có độ chính xác phân số giây nhiều hơn GETDATE() .

Cả hai hàm đều lấy ngày và giờ hiện tại từ hệ điều hành của máy tính mà phiên bản SQL Server đang chạy, nhưng độ chính xác phân số là khác nhau.

Ví dụ

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

SELECT 
    GETDATE() AS GETDATE,
    SYSDATETIME() AS SYSDATETIME;

Kết quả:

+-------------------------+-----------------------------+
| GETDATE                 | SYSDATETIME                 |
|-------------------------+-----------------------------|
| 2018-06-13 02:48:27.653 | 2018-06-13 02:48:27.6542371 |
+-------------------------+-----------------------------+

Vì vậy, như đã đề cập, SYSDATETIME() , trả về datetime2 (7) giá trị, có độ chính xác phân số lớn hơn GETDATE() , trả về ngày giờ giá trị.

datetime2 loại dữ liệu cũng có phạm vi ngày lớn hơn và độ chính xác tùy chọn do người dùng chỉ định.

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 SYSDATETIME() trừ khi bạn có lý do để 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. Cách nhận dữ liệu 7 ngày qua từ ngày hiện tại đến 7 ngày qua trong máy chủ sql

  2. 3 cách trả về danh sách công việc tác nhân máy chủ SQL (T-SQL)

  3. Sẽ tốt hơn nếu thực hiện nhiều lệnh sql với một kết nối hay kết nối lại mọi lúc?

  4. Kích thước lô được đề xuất cho SqlBulkCopy là bao nhiêu?

  5. Truy vấn chỉ mục tạo lại máy chủ SQL