如果GetDate()等于特定日期,则设置文本

如果日期是12月24日,我想在存储过程中显示特定文本。如何检查当前日期是否为12月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
额外