如何将 GETDATE 的 DATEPART 用作查询的变量

How to use DATEPART of the GETDATE as a variable for a query

这可能比我做起来容易,我是 SQL 的新手。

我有一个数据库,其中包含很多格式为 YYYY-MM-DD 的电影发行日期。

我正在尝试编写一个查询,该查询将return 部在不同年份的当前日期 (MM-DD) 上映的电影。

我试过使用:

WHERE ReleaseDate LIKE '%-(DATEPART(mm,GETDATE())-(DATEPART(dd,GETDATE())'

但它 return 什么都没有。

"WHERE ReleaseDate LIKE '%-06-03'" 有效,但我真的很想将其自动化。

啊!不要将 LIKE 与日期一起使用。

做这样的事情怎么样:

where DATEPART(month, ReleaseDate) = DATEPART(month(GETDATE()) AND
      DATEPART(day, ReleaseDate) = DATEPART(day, GETDATE())

或者,更简单地说:

where month(ReleaseDate) = month(getdate()) and
      day(ReleaseDate) = day(getdate())

您通过将 datapart 等放在引号内来将其视为字符串文字。

您可以使用 concat 动态构建此字符串:

WHERE ReleaseDate LIKE CONCAT('%-', 
                              (DATEPART(mm,GETDATE()), 
                              '-', 
                              (DATEPART(dd,GETDATE())
                             )