Tôi đang cố viết truy vấn tìm người dùng đang kỷ niệm hàng tháng với công ty của tôi để chúng tôi có thể kích hoạt email cho họ (ví dụ: nếu ngày hôm nay là 3/27, nó sẽ tìm thấy những người đăng ký trên 1/27, 2/27, 3/27, 4/27, vv, bất kể năm).Truy vấn SQL để tìm người dùng cho kỷ niệm hàng tháng
Phương pháp của tôi là tìm người dùng có phần "ngày" trong ngày đăng ký bằng phần "ngày" của ngày hôm nay.
SELECT [User Id],[Sign Up Date]
FROM [Monthly Account Update]
WHERE DATEPART(DAY,[Sign Up Date]) = DAY(GETDATE())
Tuy nhiên, điều này tất nhiên không làm việc cho các kịch bản:
Vào cuối tháng Hai, tôi sẽ không có cơ hội để gửi email cho những người có 29, 30 và 31 hàng tháng ngày kỷ niệm, như không xảy ra. Lý tưởng nhất, khi đó là ngày 28 tháng 2, tôi chỉ muốn một lần ở những người có 29, 30 và 31 ngày.
Đối với mỗi tháng mà ngày kết thúc vào ngày 30, tôi sẽ không nhận được email cho những người có ngày 31. Lý tưởng nhất ở đây, tôi chỉ muốn một lần ở những người có 30 và 31 ngày.
Có thể một trong những điều đó được thực hiện bằng truy vấn SQL không?
gì về vào ngày đầu tiên (hoặc 15) của tháng để thay thế? –