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

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

Trong SQL Server, DATETIME2FROMPARTS() hàm hoạt động tương tự như DATETIMEFROMPARTS() , ngoại trừ việc nó chấp nhận 8 đối số và trả về datetime2 giá trị. DATETIMEFROMPARTS() mặt khác, chỉ chấp nhận 7 đối số và nó trả về datetime giá trị.

Về cơ bản, bạn cung cấp tất cả các phần ngày / giờ và hàm này sẽ trả về datetime2 giá trị dựa trên các phần bạn cung cấp.

Cú pháp

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

DATETIME2FROMPARTS ( year, month, day, hour, minute, seconds, fractions, precision )

Trong đó mỗi đối số trong số 7 đối số đầu tiên là một biểu thức số nguyên chỉ định phần đó của ngày. Ví dụ:year là một số nguyên chỉ định phần năm của ngày.

Đối số thứ 8 là một biểu thức số nguyên cho phép bạn xác định độ chính xác của giá trị trả về. Giá trị này chỉ định tỷ lệ (tức là số chữ số ở bên phải của chữ số thập phân).

Ví dụ

Dưới đây là một ví dụ về cách sử dụng:

SELECT DATETIME2FROMPARTS( 2021, 05, 10, 23, 35, 29, 500, 4 ) AS Result;

Kết quả:

+--------------------------+
| Result                   |
|--------------------------|
| 2021-05-10 23:35:29.0500 |
+--------------------------+

Giá trị không hợp lệ

Tất cả các đối số cần phải là giá trị hợp lệ. Ví dụ:bạn không thể chỉ định tháng là 13 hoặc giá trị phút là 61.

Dưới đây là một ví dụ mà tôi chỉ định giá trị tháng là 13:

SELECT DATETIME2FROMPARTS( 2021, 13, 10, 23, 35, 29, 500, 4 ) AS Result;

Kết quả:

Cannot construct data type datetime2, some of the arguments have values which are not valid.

Số lượng đối số

Bạn cũng cần cung cấp số lượng đối số chính xác (8):

SELECT DATETIME2FROMPARTS( 2021, 05, 10 ) AS Result;

Kết quả:

The datetime2fromparts function requires 8 argument(s).

Giá trị rỗng

Nếu bạn cung cấp giá trị null cho bất kỳ đối số nào trong số 7 đối số đầu tiên, kết quả là NULL:

SELECT DATETIME2FROMPARTS( 2021, 05, 10, NULL, 35, 29, 500, 4 ) AS Result;

Kết quả:

+----------+
| Result   |
|----------|
| NULL     |
+----------+

Tuy nhiên, việc cung cấp giá trị null cho đối số thứ 8 (chỉ định độ chính xác / tỷ lệ) dẫn đến lỗi:

SELECT DATETIME2FROMPARTS( 2021, 05, 10, 23, 35, 29, 500, NULL ) AS Result;

Kết quả:

Scale argument is not valid. Valid expressions for data type datetime2 scale argument are integer constants and integer constant expressions.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để cập nhật hai bảng trong một câu lệnh trong SQL Server 2005?

  2. 3 cách trả về số lượng hàng trong mỗi phân vùng trong SQL Server (T-SQL)

  3. Tìm các sự kiện đồng thời trong cơ sở dữ liệu giữa các thời điểm

  4. Cách ngăn chặn tấn công SQL Injection bằng cách bảo mật

  5. Biểu thức SQL Server CASE