Sql server 从SQL Server中的字符串转换日期和/或时间时转换失败-为什么? SET@tableHTML= @tableHTML+N'第一次电子邮件呼叫T-3='+DATEADD(第-3天,@Leaguedate)+''
我收到以下错误消息: 从字符串转换日期和/或时间时,转换失败Sql server 从SQL Server中的字符串转换日期和/或时间时转换失败-为什么? SET@tableHTML= @tableHTML+N'第一次电子邮件呼叫T-3='+DATEADD(第-3天,@Leaguedate)+'',sql-server,date,tsql,type-conversion,Sql Server,Date,Tsql,Type Conversion,我收到以下错误消息: 从字符串转换日期和/或时间时,转换失败 必须将datetime值转换为字符串(char/varchar/nchar/nvarchar) 声明如下: SET @tableHTML = @tableHTML +N'<tr><td colspan="2"> 1st email call T -3 = ' + DATEADD(day,-3, @Leaguedate) + '</td></tr>' SELECT 'string '
必须将
datetime
值转换为字符串(char
/varchar
/nchar
/nvarchar
)
声明如下:
SET @tableHTML =
@tableHTML +N'<tr><td colspan="2"> 1st email call T -3 = ' + DATEADD(day,-3, @Leaguedate) + '</td></tr>'
SELECT 'string ' + DATEADD(day,-3, GETDATE()) +' another string'
将导致:
SELECT 'string '+ CONVERT(char(10), DATEADD(day,-3, GETDATE()), 103) +' another string'
从字符串转换日期和/或时间时,转换失败
然而,这一声明:
SET @tableHTML =
@tableHTML +N'<tr><td colspan="2"> 1st email call T -3 = ' + DATEADD(day,-3, @Leaguedate) + '</td></tr>'
SELECT 'string ' + DATEADD(day,-3, GETDATE()) +' another string'
将导致:
SELECT 'string '+ CONVERT(char(10), DATEADD(day,-3, GETDATE()), 103) +' another string'
@Leaguedate在何处声明的可能副本?请发布完整的代码。根据的规则,当您将
DateTime
(假定类型为@LeagueDate
)和表达式中的字符串组合在一起时,SQL Server将首先将该字符串转换为DateTime
。如果要将DateTime
转换为字符串,则必须显式执行,例如使用Cast
或convert
。