définir un texte si GetDate () est égal à une date spécifique

Je souhaite afficher un texte spécifique dans une procédure stockée si la date est le 24 décembre. Comment puis-je vérifier si la date actuelle est le 24 déc, puis définir un texte spécifique et sinon, le texte doit être vide.

1
Ceci est un simple CASE , qu'avez-vous essayé?
ajouté l'auteur EzLo, source

5 Réponses

Vous pouvez utiliser le FORMAT() , disponible dans SQL 2012 et versions ultérieures:

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

Ou combiné avec IIF() :

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

Cherchez-vous quelque chose comme ça?

SELECT 
CASE WHEN MONTH(GETDATE()) = 12 AND DAY(GETDATE()) = 24 
    THEN 'Merry Christmas!' 
    ELSE '' 
END  
0
ajouté
Facile et beau, merci!
ajouté l'auteur MTplus, source

Si vous utilisez SQL Server 2012 et versions ultérieures, voici un script plus court et efficace:

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