SQL中的日期序列?

Ste*_*ger 13 sql t-sql sql-server date

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

gbn*_*gbn 27

零是01月19日在SQL中,所以你可以使用这个:

DATEADD(day, @dayval-1,
     DATEADD(month, @monthval-1,
         DATEADD(year, @yearval-1900, 0)
     )
)
Run Code Online (Sandbox Code Playgroud)

编辑,2018年2月

正如另一个答案所说,自从SQL Server 2012(原始答案之后发布)我们就可以使用了 DATEFROMPARTS

 SELECT DATEFROMPARTS (@yearval, @monthval, @dayval)
Run Code Online (Sandbox Code Playgroud)


jak*_*dep 11

SQL Server 2012中添加了一些功能,允许您使用DATEFROMPARTS,DATETIMEFROMPARTSTIMEFROMPARTS等执行此操作 .

例:

SELECT DATEFROMPARTS(2018,2,1) -- returns 2018-02-01
Run Code Online (Sandbox Code Playgroud)