Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Ms sql server - menetapkan tanggal ke variabel

Anda tidak dapat menetapkan variabel seperti itu. Selain itu, apa gunanya? Di mana Anda menggunakan variabel itu? Hapus saja set @MYYEAR = dan Anda harus baik-baik saja. Jika Anda benar-benar ingin menetapkan variabel itu dengan logika itu, lakukan di luar SELECT main utama Anda pernyataan.

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. Tidak dapat membuat baris dengan ukuran 8937 yang lebih besar dari batas maksimum yang diizinkan yaitu 8060

  2. Kebuntuan SQL dengan operasi pilih/perbarui di atas meja

  3. Grup Percakapan Broker Layanan Server Sql

  4. Apakah CTE menggunakan ruang di tempdb?

  5. Apakah mungkin untuk memaksa penguncian tingkat baris di SQL Server?