SQL中的日期序列?

时间:2010-07-28 16:20:36

标签: sql sql-server tsql date

如何将一天[1-31]和一个月[1-12]以及一年(全部为int)转换为串行IN SQL的日期(不转换为varchar)?

2 个答案:

答案 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中添加了一些功能,允许您执行此操作 DATEFROMPARTSDATETIMEFROMPARTSTIMEFROMPARTS等。

示例:

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