[英]T-SQL failed converting varchar to int
我需要添加日期
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.
任何想法?
括號混在一起:
select Name, Surname, Days, getdate(),
CONVERT(VARCHAR(11),DATEADD(s,CONVERT(INT, days), getdate()),101)
from myTAble
首先,您的括號是不正確的,但這不是這里的問題。 我創建了一個可驗證的示例:
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值“²°”轉換為數據類型int時,轉換失敗。
這里的問題是您得到的20
字符不正確,也許您遇到了整理問題 。
在上面的示例中,我使用了一段時間前遇到的一個實際問題。 在應用程序中顯示20
但實際上數據庫中沒有非標准的角色。
在下面的示例中,某些特殊字符可能看起來像數字字符
--° #176 ~ 0 --¹ #185 ~ 1 --² #178 ~ 2 --³ #179 ~ 3
select char(178) + char(176)
您可以嘗試檢查數據是否為數字
select *, isnumeric([Days]) from MyTable
就我而言,我們對數據進行了消毒。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.