Concaténer le problème dans SQL Server

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:

entrez la description de l'image ici

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)