是否可以使用字符串数据类型(将数据类型参数作为字符串的方法)进行CAST或CONVERT,如:
CAST('11' AS 'int')
但不是
CAST('11' AS int)
答案 0 :(得分:6)
没有。 T-SQL中有很多地方需要它,特别是给它的名字 - 不是字符串,也不是包含名称的变量。
答案 1 :(得分:3)
如果你想使用动态sql,这应该可以帮助你入门:
DECLARE @datatype varchar(20)
DECLARE @sql varchar(4000)
SELECT @datatype = 'int'
SELECT @sql = 'PRINT CAST(''11'' AS '+@datatype+')'
exec (@sql)
根据您的确切需要/需要,您应该阅读The Curse and Blessings of Dynamic SQL,尤其是关于sp_executesql
的部分
答案 2 :(得分:1)
您必须使用动态SQL来实现:
DECLARE @type VARCHAR(10) = 'int'
DECLARE @value VARCHAR(10) = '11'
DECLARE @sql VARCHAR(MAX)
SET @sql = 'SELECT CAST(' + @value + ' AS ' + @type + ')'
EXEC (@sql)
<强> SQLFiddle DEMO with INT 强> // with datetime