Сеанс даты в SQL?

Как я могу конвертировать день [1-31] ​​и месяц [1-12] и год (весь int), в последовательный порт даты IN SQL (без преобразования в varchar)?

Ответы

Ответ 1

Zero - 01 jan 1900 в SQL, поэтому вы можете использовать это:

DATEADD(day, @dayval-1,
     DATEADD(month, @monthval-1,
         DATEADD(year, @yearval-1900, 0)
     )
)

Ответ 2

В SQL Server 2012 добавлено несколько функций, которые позволят вам сделать это с помощью DATEFROMPARTS, DATETIMEFROMPARTS и TIMEFROMPARTS среди других.

Пример:

SELECT DATEFROMPARTS(2018,2,1) -- returns 2018-02-01