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

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

T-SQL có một hàm được gọi là DATETIMEOFFSETFROMPARTS() điều đó cho phép bạn nhận được datetimeoffset giá trị từ các phần riêng biệt khác nhau của một ngày. Cụ thể, nó trả về bộ datetimeoffset giá trị cho ngày và giờ được chỉ định và với hiệu số và độ chính xác được chỉ định.

Ví dụ về chức năng này bên dưới.

Cú pháp

Cú pháp như sau:

DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision )

Ở đâu:

  • 7 đối số đầu tiên là các biểu thức số nguyên xác định phần ngày / giờ cụ thể đó.
  • hour_offset đối số là một biểu thức số nguyên chỉ định phần giờ của độ lệch múi giờ.
  • minute_offset là một biểu thức số nguyên chỉ định phần phút của độ lệch múi giờ.
  • precision đối số là một số nguyên theo nghĩa đen chỉ định độ chính xác của bộ datetimeoffs giá trị được trả lại. Giá trị này thực sự chỉ định tỷ lệ (tức là số chữ số ở bên phải của vị trí thập phân).

Ví dụ

Đây là một ví dụ về cách sử dụng.

SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, 23, 35, 29, 500, 12, 30, 4 ) 
AS Result;

Kết quả:

Result
----------------------------------
2021-05-10 23:35:29.0500 +12:30

Đối số không hợp lệ

Bạn cần đảm bảo rằng tất cả các đối số đều hợp lệ, nếu không bạn sẽ gặp lỗi. Dưới đây là một ví dụ về việc cung cấp một phần giờ ngoài phạm vi (25). Phần giờ chỉ có thể nằm trong khoảng từ 0 đến 24.

SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, 25, 35, 29, 500, 12, 30, 4 ) 
AS Result;

Kết quả:

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

Số lượng đối số

Bạn cần cung cấp số lượng đối số chính xác (10). Nếu không, bạn sẽ gặp lỗi.

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

Kết quả:

The datetimeoffsetfromparts function requires 10 argument(s).

Đối số rỗng

Nếu bất kỳ đối số nào trong số 9 đối số đầu tiên là rỗng, kết quả là NULL :

SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, NULL, 35, 29, 500, 12, 30, 4 ) 
AS Result;

Kết quả:

Result
----------------------------------
NULL

Tuy nhiên, nếu đối số cuối cùng (chính xác) là rỗng, thì lỗi sẽ được trả về:

SELECT DATETIMEOFFSETFROMPARTS( 2021, 05, 10, 23, 35, 29, 500, 12, 30, NULL ) 
AS Result;

Kết quả:

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

Cũng xem DATETIME2FROMPARTS () Ví dụ trong SQL Server (T-SQL) để trả về datetime2 giá trị (không có phần bù).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tại sao tôi không thể sử dụng bí danh trong câu lệnh DELETE?

  2. Cách xác định giá trị trường không thể chuyển đổi thành (thập phân, float, int) trong SQL Server

  3. Có sự khác biệt về hiệu suất giữa CTE, Truy vấn phụ, Bảng tạm thời hoặc Biến bảng không?

  4. Lưu trữ các kiểu dữ liệu nhị phân trong SQL Server

  5. Lỗi:Không thể lồng nhau câu lệnh INSERT EXEC. và Không thể sử dụng câu lệnh ROLLBACK trong câu lệnh INSERT-EXEC. Làm thế nào để giải quyết điều này?