een tekst instellen als GetDate () gelijk is aan een specifieke datum

Ik wil een specifieke tekst in een opgeslagen procedure weergeven als de datum 24 december is. Hoe kan ik controleren of de huidige datum 24ste is, dan een specifieke tekst instellen en anders zou de tekst leeg moeten zijn.

1
Dit is een eenvoudige CASE , wat heb je geprobeerd?
toegevoegd de auteur EzLo, de bron

5 antwoord

U kunt de gebruiken FORMAT() -functie, beschikbaar in SQL 2012 en nieuwer:

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

Of in combinatie met IIF() :

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

Ben je op zoek naar zoiets?

SELECT 
CASE WHEN MONTH(GETDATE()) = 12 AND DAY(GETDATE()) = 24 
    THEN 'Merry Christmas!' 
    ELSE '' 
END  
0
toegevoegd
Makkelijk en mooi, bedankt!
toegevoegd de auteur MTplus, de bron

Als u SQL Server 2012 en hoger gebruikt, is hieronder een korter en efficiënter script:

SELECT IIF(MONTH(GETDATE()) = 12 AND DAY(GETDATE()) = 24, 'Your Text', '')
0
toegevoegd
declare @dateString nvarchar(50) = '2018-12-20';
declare @text nvarchar(50);
If Convert(Date, GetDate()) = Convert(Date, dateString)
   set @text = "This is it"
0
toegevoegd
    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
toegevoegd