Date serial in SQL?

前端 未结 2 935
梦如初夏
梦如初夏 2020-12-03 11:12

How can I convert a day [1-31] and a month [1-12] and a year (all int), to a date serial IN SQL (without converting to varchar)?

相关标签:
2条回答
  • 2020-12-03 12:00

    A few functions have been added in SQL Server 2012 which will allow you to do this with DATEFROMPARTS, DATETIMEFROMPARTS and TIMEFROMPARTS amongst others.

    Example:

    SELECT DATEFROMPARTS(2018,2,1) -- returns 2018-02-01
    
    0 讨论(0)
  • 2020-12-03 12:02

    Zero is 01 jan 1900 in SQL, so you can use this:

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

    Edit, Feb 2018

    As the other answer says, since SQL Server 2012 (released after the original answer) we can use DATEFROMPARTS

     SELECT DATEFROMPARTS (@yearval, @monthval, @dayval)
    
    0 讨论(0)
提交回复
热议问题