установить текст, если 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
добавлено
SqlCom.ru - Стиль жизни SQL
SqlCom.ru - Стиль жизни SQL
908 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только MS SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz). Предложения в @sql_ninja

SQL_Ninja
SQL_Ninja
340 участник(ов)

Правила чата - https://t.me/sqlcom/88269 @sqlcom - основной канал (только SQL) @sql_ninja - второй канал (SQL вопросы начального уровня и свободное общение) @Gopnegbot - Викторина по SQL Server (наберите в привате /quiz)