Можете да използвате T-SQL DATEFROMPARTS()
функция в SQL Server, за да върне дата стойност, която се съпоставя с частите от датата, които предоставяте като целочислени изрази.
Начинът, по който работи, е, че предоставяте три стойности (по една за всяка от годината , месец , и ден стойности), а SQL Server ще върне дата стойност въз основа на предоставените от вас стойности.
Примери по-долу.
Синтаксис
Първо, ето синтаксиса:
DATEFROMPARTS ( year, month, day )
Ето какъв може да бъде всеки аргумент:
year
- Цялочислен израз, който определя година.
month
- Цялочислен израз, който определя месец, от 1 до 12.
day
- Цялочислен израз, който посочва ден.
Пример
Ето пример за употреба:
SELECT DATEFROMPARTS( 2021, 05, 10 ) AS Result;
Резултат:
+------------+ | Result | |------------| | 2021-05-10 | +------------+
Невалидни стойности
Ще трябва да се уверите, че частите за дата са предоставени в правилния ред, в противен случай може да получите грешка. Още по-лошото е, че може да не получите грешка (ако дневната част е 12 или по-малко) и следователно може да пропуснете голям проблем с начина, по който датата е преведена.
Ето пример за невалидна стойност:
SELECT DATEFROMPARTS( 2021, 30, 10 ) AS Result;
Резултат:
Cannot construct data type date, some of the arguments have values which are not valid.
Това се случва, защото предоставихме 30 като част от месеца. Тази част ще приема само стойности между 1 и 12.
Нулеви стойности
Ако някой от аргументите е нулеви стойности, резултатът е NULL
.
Ето пример за използване на нулева стойност:
SELECT DATEFROMPARTS( 2021, NULL, 10 ) AS Result;
Резултат:
+----------+ | Result | |----------| | NULL | +----------+
Следователно, вероятно се разбира от само себе си (но все пак ще го кажа), че ако всички аргументи са нулеви стойности, резултатът е NULL
:
SELECT DATEFROMPARTS( NULL, NULL, NULL ) AS Result;
Резултат:
+----------+ | Result | |----------| | NULL | +----------+