79142103

Date: 2024-10-30 17:06:18
Score: 0.5
Natty:
Report link

What I ended up doing was to write the SQL with datepart logic

var query = new QueryDefinition(
            "SELECT * FROM c WHERE (DateTimePart('mm', c.birthday) = @todayMonth AND DateTimePart('dd', c.birthday) >= @todayDay) " +
            "OR (DateTimePart('mm', c.birthday) = @next30DaysMonth AND DateTimePart('dd', c.birthday) <= @next30DaysDay) " +
            "OR (DateTimePart('mm', c.birthday) > @todayMonth AND DateTimePart('mm', c.birthday) < @next30DaysMonth) " +
            "OR (@todayMonth > @next30DaysMonth AND " +
            "((DateTimePart('mm', c.birthday) > @todayMonth OR (DateTimePart('mm', c.birthday) = @todayMonth AND DateTimePart('dd', c.birthday) >= @todayDay)) " +
            "OR (DateTimePart('mm', c.birthday) < @next30DaysMonth OR (DateTimePart('mm', c.birthday) = @next30DaysMonth AND DateTimePart('dd', c.birthday) <= @next30DaysDay))))")
            .WithParameter("@todayMonth", today.Month)
            .WithParameter("@todayDay", today.Day)
            .WithParameter("@next30DaysMonth", next30Days.Month)
            .WithParameter("@next30DaysDay", next30Days.Day);
Reasons:
  • Long answer (-1):
  • Has code block (-0.5):
  • Self-answer (0.5):
  • Starts with a question (0.5): What I
  • Low reputation (1):
Posted by: Bobby Jose