sql >> Database teknologi >  >> RDS >> Sqlserver

Ms sql server - tildeling af en dato til en variabel

Du kan ikke tildele sådan en variabel. Desuden, hvad er meningen? Hvor bruger du den variabel? Bare fjern set @MYYEAR = og du burde have det godt. Hvis du virkelig vil tildele den variabel med den logik, skal du gøre det uden for din primære SELECT erklæring.

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



  1. Parametrisering af SQL-script

  2. Indsendelse af formular, mysql og php

  3. Mysql-forespørgsel til at adskille mellemrumssepareret streng Konverter til 2 kolonner

  4. Brug af flere PostgreSQL-skemaer med Rails-modeller