2015-04-26 71 views
-1

我已經卡住過去兩天執行它給錯誤不兼容:的數據類型爲varchar和INT是在毗連運算

The data types varchar and int are incompatible in the concat operator

這裏是我的表:

create table salestable 
(
    id int identity(1,1) not null primary key, 
    empid char(5), 
    datesold date, 
    monthonly varchar(50), 
    amount money 
) 

此代碼將虛擬記錄插入到dbo.salestable中,以便在銷售,調試和步驟代碼中給出調試和理解代碼

declare @outercounter int = 1 
declare @innercounter int = 1 

while @outercounter <= (select count(name) from namestable) 
begin 
    while @innercounter <= datediff(day, getdate() -datepart(day, getdate()), {fn concat('12/31/',Datepart(year,getdate()))}) 
    begin 
     insert into salestable (empid, datesold, monthonly, amount) 
     values (@outercounter, 
       getdate() - datepart(day, getdate()) + @innercounter, 
       Datename(month, getdate() - datepart(day, getdate()) + @innercounter), 
       rand() * 10000) 
     set @innercounter = @innercounter +1   
    end 

    set @outercounter = @outercounter + 1 
    set @innercounter = 1 
end 

select * from dbo.salestable 
+0

請標記爲正確的答案,如果它的工作。 – Pratik

+0

由於第一個版本格式不正確,我正在使用downvote來抵消某人的滿意度,因此我們不鼓勵txtspk在這裏。請儘可能仔細地寫下問題 - 他們的可讀性和詳細程度越高,您就越有可能獲得答案。 – halfer

回答

0
fn concat('12/31/',CAST(Datepart(year,getdate()) AS VARCHAR(10))) 

試試這個

相關問題