Możesz użyć T-SQL DATEFROMPARTS()
funkcja w SQL Server, aby zwrócić datę wartość, która jest mapowana na części dat, które podajesz jako wyrażenia całkowite.
Działa to tak, że podajesz trzy wartości (po jednej dla każdego roku , miesiąc i dzień wartości), a SQL Server zwróci datę wartość na podstawie wartości, które podajesz.
Przykłady poniżej.
Składnia
Po pierwsze, oto składnia:
DATEFROMPARTS ( year, month, day )
Oto, czym może być każdy argument:
year
- Wyrażenie całkowite określające rok.
month
- Wyrażenie liczby całkowitej określające miesiąc, od 1 do 12.
day
- Wyrażenie liczby całkowitej określające dzień.
Przykład
Oto przykład użycia:
SELECT DATEFROMPARTS( 2021, 05, 10 ) AS Result;
Wynik:
+------------+ | Result | |------------| | 2021-05-10 | +------------+
Nieprawidłowe wartości
Musisz upewnić się, że części dat są dostarczane we właściwej kolejności, w przeciwnym razie może wystąpić błąd. Co gorsza, możesz nie otrzymać błędu (jeśli porcja dnia wynosi 12 lub mniej), a zatem możesz przeoczyć poważny problem z tłumaczeniem daty.
Oto przykład nieprawidłowej wartości:
SELECT DATEFROMPARTS( 2021, 30, 10 ) AS Result;
Wynik:
Cannot construct data type date, some of the arguments have values which are not valid.
Dzieje się tak, ponieważ podaliśmy 30 jako część miesiąca. Ta część akceptuje tylko wartości od 1 do 12.
Wartości puste
Jeśli którykolwiek z argumentów jest wartością null, wynikiem jest NULL
.
Oto przykład z użyciem wartości null:
SELECT DATEFROMPARTS( 2021, NULL, 10 ) AS Result;
Wynik:
+----------+ | Result | |----------| | NULL | +----------+
Dlatego prawdopodobnie jest rzeczą oczywistą (ale i tak to powiem), że jeśli wszystkie argumenty są wartościami null, wynikiem jest NULL
:
SELECT DATEFROMPARTS( NULL, NULL, NULL ) AS Result;
Wynik:
+----------+ | Result | |----------| | NULL | +----------+