Quand je veux utiliser CONCATENATE
dans SQL Server:
CONCAT(year(dateadd(year, -1, left(t1.[FQuater], 4))), right(t1.[FFQuater], 2))
J'ai cette erreur:
La colonne FQuater
est de type Varchar
.
Utilisez simplement +
qui est disponible sur les anciennes versions de SQL Server au lieu de la concat
qui est uniquement disponible à partir de SQL Server 2012:
year(dateadd(year,-1,left(t1.[FQuater],4))) +''+ right(t1.[FFQuater],2)
Pour éviter les valeurs nulles (si possible)
isnull(year(dateadd(year,-1,left(t1.[FQuater],4))),'') +''+ isnull(right(t1.[FFQuater],2),'')
EDIT: Comme @ ravish.hacker mentionné, vous pouvez le faire comme ceci:
isnull(year(dateadd(year,-1,left(t1.[FQuater],4))),'') +''+ isnull(right(t1.[FFQuater],2),'') + ' '
En espérant que vous utilisez SQL Server 2012 ou plus tard.
Concat par lui-même n'est rien. Vous devez utiliser select ou set.
Par exemple.
Select CONCAT(year(dateadd(year,-1,left(t1.[FQuater],4))),right(t1.[FFQuater],2))
Pour SQL Server 2008, cela fonctionnera:
DECLARE @FQuater NVARCHAR(100) = '20110826' SELECT CAST(YEAR(DATEADD(YEAR, - 1, LEFT(@FQuater, 4))) AS NVARCHAR) + CAST(RIGHT(@FQuater, 2) AS NVARCHAR)