- WHERE status = %s AND DATE(NOW()) BETWEEN date_start AND date_end AND ( \
- ((UNIX_TIMESTAMP() - UNIX_TIMESTAMP(date_start)) <= 864000) \
- OR ((UNIX_TIMESTAMP(date_end) - UNIX_TIMESTAMP()) <= 1209600) \
- OR ((donated / goal) >= 0.9) \
- OR (goal >= 3000) \
- OR (prio <= 5) \
- ) ORDER BY prio ASC, date_end ASC LIMIT %s"
+ WHERE \
+ status = %s \
+ AND \
+ date_start <= NOW() \
+ AND \
+ (CASE WHEN date_end IS NOT NULL THEN \
+ NOW() BETWEEN date_start AND date_end \
+ ELSE \
+ TRUE \
+ END) \
+ AND \
+ (AGE(NOW(), date_start) <= INTERVAL '10 days' \
+ OR \
+ AGE(date_end, NOW()) <= INTERVAL '14 days' \
+ OR \
+ (donated / goal) >= 0.85 \
+ OR \
+ goal >= 3000 \
+ OR \
+ prio <= 5 \
+ ) \
+ ORDER BY prio ASC, date_end ASC LIMIT %s"