Cela pourrait être plus facile que je le fais, je suis assez nouveau à SQL.
J'ai une database avec beaucoup de dates de sortie de films au format AAAA-MM-DD.
J'essaie d'écrire une requête qui returnnerait les films publiés à la date actuelle (MM-DD) dans diverses années.
J'ai essayé d'utiliser:
WHERE ReleaseDate LIKE '%-(DATEPART(mm,GETDATE())-(DATEPART(dd,GETDATE())'
Mais ça ne returnne rien.
"WHERE ReleaseDate LIKE '% -06-03'" fonctionne mais je voudrais vraiment automatiser cela.
Arrg! N'utilisez pas LIKE
avec des dates.
Que diriez-vous de faire quelque chose comme ça:
where DATEPART(month, ReleaseDate) = DATEPART(month(GETDATE()) AND DATEPART(day, ReleaseDate) = DATEPART(day, GETDATE())
Ou, plus simplement:
where month(ReleaseDate) = month(getdate()) and day(ReleaseDate) = day(getdate())
Vous datapart
etc comme une string littérale en le mettant dans les guillemets.
Vous pouvez utiliser concat
pour build cette string dynamicment:
WHERE ReleaseDate LIKE CONCAT('%-', (DATEPART(mm,GETDATE()), '-', (DATEPART(dd,GETDATE()) )