Legen Sie einen Text fest, wenn GetDate () einem bestimmten Datum entspricht

Ich möchte einen bestimmten Text in einer gespeicherten Prozedur anzeigen, wenn das Datum 24. Dezember ist. Wie kann ich überprüfen, ob das aktuelle Datum "dez 24" ist, und dann einen bestimmten Text festlegen, ansonsten sollte der Text leer sein.

1
Dies ist ein einfacher CASE , was haben Sie versucht?
hinzugefügt der Autor EzLo, Quelle

5 Antworten

Sie können den verwenden Funktion FORMAT() , verfügbar in SQL 2012 und neuer:

SELECT CASE WHEN FORMAT(GETDATE(), 'MM-dd') = '12-24'
            THEN 'ALMOST XMAS'
            ELSE ''
            END AS TEXT

Oder mit kombiniert IIF() :

SELECT IIF(FORMAT(GETDATE(), 'MM-dd') = '12-24', 'ALMOST XMAS', '') AS TEXT
0
hinzugefügt

Suchst du so etwas?

SELECT 
CASE WHEN MONTH(GETDATE()) = 12 AND DAY(GETDATE()) = 24 
    THEN 'Merry Christmas!' 
    ELSE '' 
END  
0
hinzugefügt
Einfach und schön, danke!
hinzugefügt der Autor MTplus, Quelle

Wenn Sie SQL Server 2012 oder höher verwenden, finden Sie unten ein kürzeres und effizientes Skript:

SELECT IIF(MONTH(GETDATE()) = 12 AND DAY(GETDATE()) = 24, 'Your Text', '')
0
hinzugefügt
declare @dateString nvarchar(50) = '2018-12-20';
declare @text nvarchar(50);
If Convert(Date, GetDate()) = Convert(Date, dateString)
   set @text = "This is it"
0
hinzugefügt
    if(datepart(MONTH,GETDATE())=12 AND  datepart(DAY,GETDATE())=24)
         SELECT 'it is dec 24th'
    else
         SELECT ' '

--- you can use datename() instead of datepart() to get month as text 12>>december

0
hinzugefügt