簡體   English   中英

T-SQL無法將varchar轉換為int

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM