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

SYSDATETIME () Ví dụ trong SQL Server (T-SQL)

SYSDATETIME() hàm trả về ngày và giờ hiện tại dưới dạng datetime2 (7) giá trị. Giá trị này được lấy từ hệ điều hành của máy tính mà phiên bản SQL Server đang chạy.

Bài viết này cung cấp các ví dụ về SYSDATETIME() , 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

Đầu tiên, đây là cú pháp:

SYSDATETIME ( )

Vì vậy, hàm này không thực sự chấp nhận bất kỳ đối số nào. Bạn chỉ cần gọi nó 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ừ SYSDATETIME() :

SELECT SYSDATETIME() AS Result;

Kết quả:

+-----------------------------+
| Result                      |
|-----------------------------|
| 2018-06-15 23:09:13.5852199 |
+-----------------------------+

Vì vậy, như đã đề cập, nó trả về datetime2 (7) giá trị. datetime2 loại dữ liệu có phạm vi ngày lớn hơn và độ chính xác phân số mặc định lớn hơn so với ngày giờ kiểu dữ liệu (là kiểu dữ liệu GETDATE() trả về - xem SYSDATETIME () so với GETDATE ():Sự khác biệt là gì?).

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, SYSDATETIME()) AS Result;

Kết quả:

+----------+
| Result   |
|----------|
| 6        |
+----------+

Đôi khi có nhiều cách để nhận được cùng một kết quả trong SQL Server. Đây là một ví dụ khác sử dụng MONTH() chức năng:

SELECT MONTH(SYSDATETIME()) AS Result;

Kết quả:

+----------+
| Result   |
|----------|
| 6        |
+----------+

Cả hai chức năng đó đều trả về tháng hiện tại. Nhưng họ 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, SYSDATETIME()) 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(SYSDATETIME(), 'd', 'en-US') AS 'd, en-US',
    FORMAT(SYSDATETIME(), 'd', 'en-gb') AS 'd, en-gb',
    FORMAT(SYSDATETIME(), 'D', 'en-US') AS 'D, en-US',
    FORMAT(SYSDATETIME(), 'D', 'en-gb') AS 'D, en-gb';

Kết quả:

+------------+------------+-----------------------+--------------+
| d, en-US   | d, en-gb   | D, en-US              | D, en-gb     |
|------------+------------+-----------------------+--------------|
| 6/15/2018  | 15/06/2018 | Friday, June 15, 2018 | 15 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 = SYSDATETIME();
DECLARE @date2 datetime2 = DATEADD(month, 1, SYSDATETIME());
SELECT DATEDIFF(day, @date1, @date2) AS Result;

Kết quả:

+----------+
| Result   |
|----------|
| 30       |
+----------+


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xóa các hàng trùng lặp (dựa trên giá trị từ nhiều cột) khỏi bảng SQL

  2. Tìm kiếm mờ SQL Server với Phần trăm so khớp

  3. Sao chép dữ liệu vào một bảng khác

  4. Làm cách nào để di chuyển một bảng vào một lược đồ trong T-SQL

  5. Xác thực SQL Server so với xác thực Windows:Sử dụng cái nào và khi nào