sql >> Base de Datos >  >> RDS >> Sqlserver

Servidor ms sql:asignación de una fecha a una variable

No se puede asignar una variable como esa. Además, ¿cuál es el punto? ¿Dónde estás usando esa variable? Simplemente elimine el set @MYYEAR = y deberías estar bien. Si realmente desea asignar esa variable con esa lógica, hágalo fuera de su SELECT principal declaración.

declare @MYYEAR int
set @MYYEAR = 
(SELECT  
    CASE
        WHEN CONVERT(INTEGER,BTHDAT) = 0 THEN 0
        WHEN  datepart(DY,convert(date, BTHDAT)) > datepart(DY,'2015/07/01') THEN DATEDIFF(YEAR, convert(date, BTHDAT),'2015/07/01') - 1
        ELSE DATEDIFF(YEAR,convert(date, BTHDAT),'2015/07/01')  
    END
FROM SomeTable)

SELECT  
    SERVICE_GROUP, 
    SERVICE_CATEGORY,
    @MYYEAR
FROM
    SomeOtherTable