Всем доброго времени суток! Почему не работает вот такой запрос? Т.е. ошибок он не выдает, но и данных нет. Скрипт запускается по крону каждую минуту и нужно сделать так, чтобы в первые 10 минут запись возвращалась каждую минуту, первый час - каждые 10 минут, первые 24 часа - каждый час (в поле creation_date хранится дата в формате mysql):
SELECT refund_transaction_objects.*
FROM payprocessing.refund_transaction_objects
WHERE (refund_transaction_objects.creation_date > NOW() - INTERVAL 10 MINUTE)
OR (refund_transaction_objects.creation_date > NOW() - INTERVAL 1 HOUR AND MOD(MINUTE(NOW()-refund_transaction_objects.creation_date),10) = 0)
OR (refund_transaction_objects.creation_date > NOW() - INTERVAL 24 HOUR AND MOD(MINUTE(NOW()-refund_transaction_objects.creation_date),59) = 0);
В свою очередь вот такой запрос выполняется (но в нем уже не точно, что пройдет именно столько времени, сколько нужно):
SELECT refund_transaction_objects.*
FROM payprocessing.refund_transaction_objects
WHERE (refund_transaction_objects.creation_date > NOW() - INTERVAL 10 MINUTE)
OR (refund_transaction_objects.creation_date > NOW() - INTERVAL 1 HOUR AND MOD(MINUTE(NOW()),10) = 0)
OR (refund_transaction_objects.creation_date > NOW() - INTERVAL 24 HOUR AND MOD(MINUTE(NOW()),59) = 0);