Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Ms sql сървър - присвояване на дата на променлива

Не можете да присвоите променлива по този начин. Освен това какъв е смисълът? Къде използвате тази променлива? Просто премахнете set @MYYEAR = и трябва да си добре. Ако наистина искате да присвоите тази променлива с тази логика, направете го извън вашия основен SELECT изявление.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL грешка:Неправилен синтаксис близо до ключовата дума „Потребител“

  2. Външен ключ към множество таблици

  3. Как да зададете име на приложение в низ за свързване на ADODB

  4. Читанията не намаляват след поставяне на индекс

  5. Какви разрешения са необходими за масово вмъкване в SQL Server от мрежов дял с Windows удостоверяване?