如何将一天[1-31]和一个月[1-12]以及一年(全部为int)转换为串行IN SQL的日期(不转换为varchar)?
答案 0 :(得分:27)
在SQL中,零是01月19日,所以你可以使用它:
DATEADD(day, @dayval-1,
DATEADD(month, @monthval-1,
DATEADD(year, @yearval-1900, 0)
)
)
编辑,2018年2月
正如另一个答案所说,自从SQL Server 2012(在原始答案之后发布),我们可以使用DATEFROMPARTS
SELECT DATEFROMPARTS (@yearval, @monthval, @dayval)
答案 1 :(得分:11)
SQL Server 2012中添加了一些功能,允许您执行此操作 DATEFROMPARTS,DATETIMEFROMPARTS和TIMEFROMPARTS等。
示例:
SELECT DATEFROMPARTS(2018,2,1) -- returns 2018-02-01