如何输出不带标题的字符串?我的代码看起来还不错,但是错误消息显示:“转换varchar值时转换失败,并且转换为数据类型int。”
而且我甚至都没有试图将字符串更改为'int',那为什么要这样解释呢?
SELECT FirstName + ' has a EmployeeID of '+ EmployeeID + ' and was born '+
CONVERT(NVARCHAR(30), BirthDate, 112)
FROM Db.Employees;
Microsoft页面中显示的类似代码有效:-
SELECT 'The order is due on ' + CONVERT(varchar(12), DueDate, 101)
FROM Sales.SalesOrderHeader
WHERE SalesOrderID = 50001;
答案 0 :(得分:2)
您必须将EmployeeID(即int)转换为varchar。尝试像这样更改代码:
SELECT FirstName + ' has a EmployeeID of '+ CONVERT(NVARCHAR(20), EmployeeID) + ' and was born '+ CONVERT(NVARCHAR(30), BirthDate, 112)
FROM Db.Employees;
如果在SQL Server中查看Data type precedence,您会发现int数据类型(#16)在字符串类型(#25-#28)上方,因此SQL Server将尝试转换文本(员工的名称等)为整数。
另一种选择是使用CONCAT函数来连接您的值。