встановити текст, якщо GetDate () дорівнює певній даті

Я хочу показати конкретний текст у збереженій процедурі, якщо дата 24 грудня. Як я можу перевірити, чи є поточна дата 24 грудня, а потім встановити певний текст, інакше текст повинен бути порожнім.

1
Це простий CASE , що ви пробували?
додано Автор EzLo, джерело

5 Відповіді

Ви можете скористатися Функція FORMAT() , доступна в SQL 2012 і новіші:

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

Або в поєднанні з IIF() :

SELECT IIF(FORMAT(GETDATE(), 'MM-dd') = '12-24', 'ALMOST XMAS', '') AS TEXT
0
додано

Ви шукаєте щось подібне?

SELECT 
CASE WHEN MONTH(GETDATE()) = 12 AND DAY(GETDATE()) = 24 
    THEN 'Merry Christmas!' 
    ELSE '' 
END  
0
додано
Легко і красиво, спасибі!
додано Автор MTplus, джерело

Якщо ви використовуєте SQL Server 2012 і вище, нижче наведений короткий і ефективний сценарій:

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