【发布时间】:2014-02-06 15:53:24
【问题描述】:
我有我的选择
SELECT CONVERT(VARCHAR ,p.DataRegistrazione, 103) AS DataRegistrazione, ld.BarcodeFronte, ld.BarcodeRetro, ld.CodiceMSP, ld.CodiceFiscale, ld.Cognome, ld.Nome, ld.Sesso,
CONVERT(VARCHAR ,ld.DataNascita,103) AS DataNascita, Convert(VARCHAR ,ld.DataAccettazione,103) AS DataAccettazione , ld.RepartoAccettazione, ld.NumeroEpisodio, ld.CodiceEsenzione, ld.TipoDoc, ld.Attivo,
ld.FlagLavorato, CONVERT(VARCHAR ,ld.FlagSpunta) AS FlagSpunta, Convert(VARCHAR ,ld.DataSpunta,103) AS DataSpunta, ld.Batch,
CONVERT(VARCHAR ,p.Data,103) AS Data, CONVERT(VARCHAR ,p.Posizione) AS Posizione, CONVERT(VARCHAR ,p.IsDownloaded) AS IsDownloaded ,
CONVERT(VARCHAR ,CASE WHEN p.SystemField3 IS NULL THEN 0 ELSE 1 END) AS Caricato
FROM dbo.LavorazioniDES ld LEFT OUTER JOIN dbo.PSafed p ON ld.BarcodeFronte COLLATE DATABASE_DEFAULT = p.BarcodeFronte COLLATE DATABASE_DEFAULT
WHERE Convert(VARCHAR ,ld.DataSpunta,103) = convert(VARCHAR ,DATEADD(day,-1,GETDATE()),103) AND ld.FlagLavorato IN ('000','002') AND IsDeleted=0
我得到了这个错误,我不知道我应该改变什么转换??
Implicit conversion of varchar value to varchar cannot be performed because the collation of the value is unresolved due to a collation conflict
【问题讨论】:
-
这并不能回答您的问题,但切勿在没有长度参数的情况下使用
varchar()。在某些情况下,它有一个默认值1。代码应该有类似varchar(255)或任何你想要的长度。 -
您为什么不一次删除一个
Convert()s,然后将其缩小到导致您出现问题的字段? -
在转换日期的 WHERE 加入之后,您可能需要另一个
COLLATE DATABASE_DEFAULT:Convert() = Convert(...) COLLATE DATABASE_DEFAULT。整理+日期转换哎哟:-) -
好的,我会试试这个家伙
标签: sql sql-server tsql sql-server-2005