关于在TSQL中将int转换为日期时间的问题

Kev*_*vin 1 sql-server datetime sql-server-2008

我有一个存储过程,它将所需月份和年份的int作为参数.它使用这些来比较我从中拉出的表中的一些日期时间值.我需要将它们转换为DateTime值.我正在尝试做这样的事情:

CONVERT(DATETIME, CONVERT(varchar(4), @year) + '-' + Convert(varchar(2),@month) + '-01 00:00:00', 102))
Run Code Online (Sandbox Code Playgroud)

它构建"2009-6-1 00:00:00"字符串(对于那些参数值).这似乎不起作用,任何其他建议如何做到这一点?我想我会像程序员一样对待这个......

这是Sql Server 2008.

Ada*_*Dev 5

SELECT CAST(CAST(@Year AS VARCHAR(4))  + RIGHT('0' + CAST(@Month AS VARCHAR(2)), 2) + '01' AS DATETIME)
Run Code Online (Sandbox Code Playgroud)

应该这样做