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

Cách lấy ngày và giờ hiện tại (không có múi giờ) trong T-SQL

Vấn đề:

Bạn muốn nhận ngày và giờ hiện tại trong T-SQL, nhưng bạn không muốn chênh lệch múi giờ.

Giải pháp:

Chúng tôi sẽ sử dụng GETDATE (), CURRENT_TIMESTAMP và SYSDATETIME () để lấy ngày và giờ hiện tại mà không có chênh lệch múi giờ. Hai chức năng đầu tiên cho phép chúng ta lấy thời gian hiện tại với độ chính xác thấp hơn. (GETDATE () là một hàm T-SQL, trong khi CURRENT_TIMESTAMP là một hàm Chuẩn SQL; cả hai hàm đều trả về cùng một kiểu dữ liệu). Hàm thứ ba, SYSDATETIME (), có thời gian chính xác cao hơn.

SELECT CURRENT_TIMESTAMP ;

Đây là kết quả của truy vấn:

2019-08-14 10:01:06.983

Thảo luận:

Trong cơ sở dữ liệu SQL Server, CURRENT_TIMESTAMP hàm trả về ngày và giờ hiện tại (tức là thời gian trên máy mà phiên bản SQL Server đó chạy) dưới dạng datetime loại dữ liệu. Datetime là thời gian có độ chính xác thấp hơn có tối đa ba giây phân số. (Trong ví dụ của chúng tôi, đây là 983.)

GETDATE () tương tự như CURRENT_TIMESTAMP và trả về cùng một kết quả. Sự khác biệt là CURRENT_TIMESTAMP là tiêu chuẩn SQL, trong khi GETDATE () dành riêng cho SQL Server.

SELECT GETDATE() ;

Tất nhiên, nếu bạn muốn nhận ngày và giờ hiện tại có độ chính xác cao hơn mà không có chênh lệch múi giờ, bạn có thể sử dụng hàm SYSDATETIME (). Hàm này trả về một datetime2 kiểu dữ liệu với bảy giây phân số. Hãy xem ví dụ dưới đây:

SELECT SYSDATETIME() ;

Đây là kết quả:

2019-08-14 10:01:06.9754163

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Huawei GaussDB

  2. Toán tử SQL là gì và chúng hoạt động như thế nào?

  3. Phần 2 - Cách tổ chức một sơ đồ cơ sở dữ liệu lớn

  4. Khởi tạo tệp tức thì:Tác động trong quá trình thiết lập

  5. Một giải pháp thay thế cho:Con trỏ không được hỗ trợ trên bảng có chỉ mục chuỗi cột được phân cụm