我需要添加日期
select Name, Surname, Days, getdate(),
CONVERT(VARCHAR(11),DATEADD(s,CONVERT(INT, Days) ), getdate()),101 )
from myTAble
但我收到错误
Conversion failed when converting the varchar value '20' to data type int.
任何想法?
答案 0 :(得分:4)
括号混乱:
select Name, Surname, Days, getdate(),
CONVERT(VARCHAR(11),DATEADD(s,CONVERT(INT, days), getdate()),101)
from myTAble
答案 1 :(得分:0)
首先你的胃肠道检查是不正确的,但这不是问题。 我创建了一个可验证的例子:
create table MyTable
(
Name varchar(100)
,Surname varchar(100)
,[Days] varchar(100)
)
GO
insert into MyTable(Name,Surname,[Days])
values ('John', 'Doo', '20')
,('Stack', 'Overflow', char(178) + char(176))
GO
现在你的查询(正确的治疗)
select Name, Surname, Days, getdate(),
CONVERT(VARCHAR(11),DATEADD(s,CONVERT(INT, Days ), getdate()),101 )
from myTAble
我设法重现你的问题(有点)
将varchar值'²°'转换为数据类型时转换失败 中间体
这里的问题是你有一个20
不正确的caracteres,也许你有一个整理问题。
在上面的例子中,我使用了一段时间前的真正问题。在应用程序中显示20
,但在数据库中我们得到了非标准的caracteres。
在下面的例子中,一些特殊的caractres看起来像数字的
--° #176 ~ 0 --¹ #185 ~ 1 --² #178 ~ 2 --³ #179 ~ 3
select char(178) + char(176)
您可以尝试检查数据是否为数字
select *, isnumeric([Days]) from MyTable
在我的情况下,我们对数据进行了清理。