Bạn có thể sử dụng T-SQL DATEFROMPARTS()
trong SQL Server để trả về ngày tháng giá trị ánh xạ đến các phần ngày mà bạn cung cấp dưới dạng biểu thức số nguyên.
Cách thức hoạt động là bạn cung cấp ba giá trị (một giá trị cho mỗi năm , tháng và ngày giá trị) và SQL Server sẽ trả về ngày dựa trên các giá trị bạn cung cấp.
Ví dụ bên dưới.
Cú pháp
Đầu tiên, đây là cú pháp:
DATEFROMPARTS ( year, month, day )
Đây là những gì mỗi đối số có thể là:
-
year
- Một biểu thức số nguyên chỉ định một năm.
-
month
- Một biểu thức số nguyên chỉ định một tháng, từ 1 đến 12.
-
day
- Một biểu thức số nguyên chỉ định một ngày.
Ví dụ
Dưới đây là một ví dụ về cách sử dụng:
SELECT DATEFROMPARTS( 2021, 05, 10 ) AS Result;
Kết quả:
+------------+ | Result | |------------| | 2021-05-10 | +------------+
Giá trị không hợp lệ
Bạn cần đảm bảo rằng các phần của ngày tháng được cung cấp theo đúng thứ tự, nếu không, bạn có thể gặp lỗi. Tệ hơn nữa, bạn có thể không gặp lỗi (nếu phần ngày là 12 hoặc ít hơn) và do đó có thể bỏ lỡ một vấn đề lớn với cách dịch ngày.
Dưới đây là một ví dụ về giá trị không hợp lệ:
SELECT DATEFROMPARTS( 2021, 30, 10 ) AS Result;
Kết quả:
Cannot construct data type date, some of the arguments have values which are not valid.
Điều này xảy ra bởi vì chúng tôi đã cung cấp 30 như một phần của tháng. Phần này sẽ chỉ chấp nhận các giá trị từ 1 đến 12.
Giá trị rỗng
Nếu bất kỳ đối số nào là giá trị rỗng, kết quả là NULL
.
Dưới đây là một ví dụ sử dụng giá trị null:
SELECT DATEFROMPARTS( 2021, NULL, 10 ) AS Result;
Kết quả:
+----------+ | Result | |----------| | NULL | +----------+
Do đó, có lẽ không cần phải nói (nhưng tôi sẽ nói luôn), rằng nếu tất cả các đối số là giá trị rỗng, thì kết quả là NULL
:
SELECT DATEFROMPARTS( NULL, NULL, NULL ) AS Result;
Kết quả:
+----------+ | Result | |----------| | NULL | +----------+