Это довольно простая функция для замены отсутствующих функций функции DATEFROMPARTS в SQL Server 2012 и более поздних версиях. Это простая конкатенация года, месяца и дня в формат даты и возврат в качестве даты. После того как вы построили его, вы будете использовать любую другую функцию.
Во время тестирования некоторых дополнительных дат DATETIME2, связанных с Пасхой, мы обнаружили, что некоторые даты до 1000AD могут ошибочно из-за длины текста. Мы используем функцию, гарантирующую длину каждой части даты, поэтому возьмите ее из ссылки ниже.
Это, как правило, является важной частью других функций даты, которые мы используем, и было развернуто в NHS и легальных базах данных.
CREATE FUNCTION Dates.DateFromParts(@Year SMALLINT,@Month SMALLINT,@Day SMALLINT) RETURNS DATETIME2 AS BEGINDECLARE @Date DATETIME2=Dates.DatePad(@Year,4)+'-'+Dates.DatePad(@Month,2)+'-'+Dates.DatePad(@Day,2)RETURN @DateENDGO