За последние 24 часа нас посетили 18718 программистов и 1703 робота. Сейчас ищут 615 программистов ...

Выполнение sql запроса в зависимости от настоящего времени.

Тема в разделе "MySQL", создана пользователем lexus1990, 22 авг 2012.

  1. lexus1990

    lexus1990 Активный пользователь

    С нами с:
    7 авг 2011
    Сообщения:
    11
    Симпатии:
    0
    Всем доброго времени суток! Почему не работает вот такой запрос? Т.е. ошибок он не выдает, но и данных нет. Скрипт запускается по крону каждую минуту и нужно сделать так, чтобы в первые 10 минут запись возвращалась каждую минуту, первый час - каждые 10 минут, первые 24 часа - каждый час (в поле creation_date хранится дата в формате mysql):


    Код (Text):
    1. SELECT refund_transaction_objects.*
    2. FROM payprocessing.refund_transaction_objects
    3. WHERE (refund_transaction_objects.creation_date > NOW() - INTERVAL 10 MINUTE)
    4. OR (refund_transaction_objects.creation_date > NOW() - INTERVAL 1 HOUR AND MOD(MINUTE(NOW()-refund_transaction_objects.creation_date),10) = 0)
    5. OR (refund_transaction_objects.creation_date > NOW() - INTERVAL 24 HOUR AND MOD(MINUTE(NOW()-refund_transaction_objects.creation_date),59) = 0);


    В свою очередь вот такой запрос выполняется (но в нем уже не точно, что пройдет именно столько времени, сколько нужно):


    Код (Text):
    1. SELECT refund_transaction_objects.*
    2. FROM payprocessing.refund_transaction_objects
    3. WHERE (refund_transaction_objects.creation_date > NOW() - INTERVAL 10 MINUTE)
    4. OR (refund_transaction_objects.creation_date > NOW() - INTERVAL 1 HOUR AND MOD(MINUTE(NOW()),10) = 0)
    5. OR (refund_transaction_objects.creation_date > NOW() - INTERVAL 24 HOUR AND MOD(MINUTE(NOW()),59) = 0);