Year(int) Month(int) ProductName Date(DateTime)
2013 11 ACB
2013 11 CDE
我正在尝试更新Date
上表中的值。
此查询不起作用。
有什么办法可以转换int
为datetime
?
UPDATE t
SET t.[Date] = convert(date, convert(int,
t.[Year]) + '-' + convert(int, t.[Month]) + '-01')
FROM Table t
您正在尝试添加整数和字符串。这不是Visual Basic 6.0;它不是Visual Basic 6.0。您需要更加明确地进行数据类型转换,尤其是在尝试使用数字类型构建字符串时。
当然,比烦恼任何笨拙的字符串转换更容易,更有效的方法是:
UPDATE dbo.Table
SET [Date] = DATEADD(MONTH, [Month]-1, DATEADD(YEAR, [Year]-1900, 0));
在SQL Server 2012中(不确定为什么标记了3个不同的版本):
UPDATE dbo.Table
SET [Date] = DATEFROMPARTS([Year],[Month],1);
无论哪种情况都没有理由使用FROM
...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句