在sql server中将int值转换为datetime

Sal*_*dor 2 sql sql-server sql-server-2005

我需要使用sql server在datetime中转换年,月和日的int值.

实际上我正在使用它

DECLARE @MONTH INT
DECLARE @YEAR INT
DECLARE @DAY  INT
DECLARE @MAXDATE DATETIME
DECLARE @MINDATE DATETIME

SET @MONTH=12
SET @YEAR=2010
SET @DAY=1


SET @MINDATE=CONVERT(DATE,CAST (@YEAR AS VARCHAR)+ RIGHT ('0'+ CAST (@MONTH AS VARCHAR),2) + RIGHT ('0'+ CAST (@DAY AS VARCHAR),2))

SELECT @MINDATE
Run Code Online (Sandbox Code Playgroud)

并且工作正常,但我想知道是否存在更好的方法来转换这些值.

jzd*_*jzd 5

这会更简单一些:

select dateadd(month,(@YEAR-1900)* 12 + @MONTH - 1,0) + (@DAY-1)
Run Code Online (Sandbox Code Playgroud)