CURRENT_TIMESTAMP
hàm trả về ngày và giờ hiện tại dưới dạng datetime giá trị. Giá trị này có nguồn gốc từ hệ điều hành của máy tính mà phiên bản SQL Server đang chạy.
Hàm này là ANSI SQL tương đương với T-SQL GETDATE()
, vì vậy bạn có thể sử dụng bất kỳ chức năng nào bạn thích. Lưu ý rằng cả hai hàm đều có phạm vi ngày thấp hơn và độ chính xác phân số mặc định thấp hơn T-SQL SYSDATETIME()
hàm (trả về datetime2 (7) giá trị).
Bài viết này cung cấp các ví dụ về CURRENT_TIMESTAMP
, bao gồm cả cách bạn có thể sử dụng nó với các chức năng khác để trả lại giá trị mà bạn quan tâm.
Cú pháp
Cú pháp như sau:
CURRENT_TIMESTAMP
Vì vậy, bạn chỉ cần gọi hàm này mà không cần bất kỳ đối số nào.
Ví dụ
Đây là ví dụ cơ bản về việc sử dụng SELECT
câu lệnh để trả về ngày và giờ hiện tại từ CURRENT_TIMESTAMP
:
SELECT CURRENT_TIMESTAMP AS Result;
Kết quả:
+-------------------------+ | Result | |-------------------------| | 2018-06-16 00:06:36.740 | +-------------------------+
Trích xuất một phần của ngày
Nếu bạn chỉ muốn một phần của giá trị trả về, bạn có thể sử dụng DATEPART()
để chỉ trả lại phần ngày / giờ mà bạn quan tâm.
Ví dụ:
SELECT DATEPART(month, CURRENT_TIMESTAMP) AS Result;
Kết quả:
+----------+ | Result | |----------| | 6 | +----------+
Đây là một ví dụ khác sử dụng MONTH()
hàm số. Kết quả là như nhau.
SELECT MONTH(CURRENT_TIMESTAMP) AS Result;
Kết quả:
+----------+ | Result | |----------| | 6 | +----------+
Cả hai hàm này đều trả về tháng hiện tại. Nhưng chúng trả về chúng dưới dạng một số nguyên đại diện cho số tháng.
Nếu bạn muốn tháng tên thay vào đó, bạn có thể sử dụng DATENAME()
:
SELECT DATENAME(month, CURRENT_TIMESTAMP) AS Result;
Kết quả:
+----------+ | Result | |----------| | June | +----------+
Định dạng ngày
Bạn cũng có thể sử dụng các hàm T-SQL khác để định dạng ngày tháng theo yêu cầu.
Đây là một ví dụ về việc sử dụng FORMAT()
chức năng định dạng kết quả:
SELECT FORMAT(CURRENT_TIMESTAMP, 'd', 'en-US') AS 'd, en-US', FORMAT(CURRENT_TIMESTAMP, 'd', 'en-gb') AS 'd, en-gb', FORMAT(CURRENT_TIMESTAMP, 'D', 'en-US') AS 'D, en-US', FORMAT(CURRENT_TIMESTAMP, 'D', 'en-gb') AS 'D, en-gb';
Kết quả:
+------------+------------+-------------------------+--------------+ | d, en-US | d, en-gb | D, en-US | D, en-gb | |------------+------------+-------------------------+--------------| | 6/16/2018 | 16/06/2018 | Saturday, June 16, 2018 | 16 June 2018 | +------------+------------+-------------------------+--------------+
Các ví dụ khác tại Cách định dạng ngày và giờ trong SQL Server.
Tăng giá trị và Tìm sự khác biệt
Bạn có thể sử dụng các hàm như DATEDIFF()
để trả lại sự khác biệt giữa ngày hiện tại và một ngày khác.
Đây là một ví dụ về việc sử dụng DATEADD()
để thêm một tháng vào ngày hiện tại, sau đó tìm ra sự khác biệt về ngày:
DECLARE @date1 datetime2 = CURRENT_TIMESTAMP; DECLARE @date2 datetime2 = DATEADD(month, 1, CURRENT_TIMESTAMP); SELECT DATEDIFF(day, @date1, @date2) AS Result;
Kết quả:
+----------+ | Result | |----------| | 30 | +----------+