Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 为什么可以';concat时将DateTime转换为字符串_Sql_Sql Server 2012 - Fatal编程技术网

Sql 为什么可以';concat时将DateTime转换为字符串

Sql 为什么可以';concat时将DateTime转换为字符串,sql,sql-server-2012,Sql,Sql Server 2012,为什么当使用datetime作为独立的mssql时可以强制转换它。但是当concat到一个字符串时,它不能吗 declare @foo datetime set @foo = '2015-10-10' --Works print @foo --Doesn't work print 'my foo' + @foo 因为+可以表示加法或字符串串联。因此,将其显式转换为字符串: 'my foo' + convert(varchar(12), @foo, 120) 当concating和使用prin

为什么当使用datetime作为独立的mssql时可以强制转换它。但是当concat到一个字符串时,它不能吗

declare @foo datetime
set @foo = '2015-10-10'
--Works
print @foo
--Doesn't work
print 'my foo' + @foo

因为
+
可以表示加法或字符串串联。因此,将其显式转换为字符串:

'my foo' + convert(varchar(12), @foo, 120)

当concating和使用print语句时,您需要将其转换为varchar,因为类型不是字符串…所以可以使用+?