Sto tentando di scrivere una query che trova gli utenti che festeggiano un anniversario mensile con la mia azienda in modo che possiamo attivare una email a loro (cioè, se la data di oggi è 3/27, troverebbe persone che si sono iscritte su 1/27, 2/27, 3/27, 4/27, ecc., indipendentemente dall'anno).Query SQL per trovare gli utenti per l'anniversario mensile
Il mio metodo è trovare utenti la cui parte "giorno" della loro data di registrazione è uguale alla parte "giorno" della data odierna.
SELECT [User Id],[Sign Up Date]
FROM [Monthly Account Update]
WHERE DATEPART(DAY,[Sign Up Date]) = DAY(GETDATE())
Tuttavia, questo naturalmente non funziona per questi scenari:
Alla fine di febbraio, non vorrei avere la possibilità di e-mail le persone con il 29, 30 e 31 mensili i giorni dell'anniversario, in quanto non accadono. Idealmente, quando è il 28 febbraio, vorrei solo ammassare persone con 29, 30 e 31 date.
Per ogni altro mese in cui la data scade il 30, non potrei mandare email a persone con 31 ° giorno. Idealmente, vorrei solo ammassare persone con 30 e 31 date.
È possibile eseguire una di queste operazioni con una query SQL?
Che dire sulla prima (o 15) del mese, invece? –