2013-08-17 3 views
1

Я хочу создать ежемесячное событие для каждого зарегистрированного клиента, который запускает инструкцию insert в таблице фактурирования. Если событие указано для запуска от имени 20 августа 2013 г. 0:00 (будущая дата), на какую дату я могу ожидать следующего события?Как создать ежемесячные события?

Я не знаю, считать ли это 30 дней или 365/12 дней (математически).

Я использую что-то вроде этого, чтобы создать это событие:

DELIMITER $$ 
CREATE EVENT event1 
ON SCHEDULE EVERY '1' MONTH 
STARTS '2013-08-20 00:00:00' 
DO 
BEGIN 

END$$ 

DELIMITER ; 

Мой вопрос, когда делает MySQL огонь это событие в следующем месяце?

+0

@Prix ОК получил его. Мне было интересно, почему вы сделали это редактирование ранее. Потому что я думал, что слово «я» не должно входить в вопрос на таких форумах. В любом случае вам приятно объяснять. – HumbleLearner

+0

@Prix Старший пользователь, например, вы можете рекомендовать автоматизировать эту функцию как запрос функции. Если бы вы не сказали мне, я не знаю, правильно? И не только это, вы должны не торопиться, чтобы объяснить. – HumbleLearner

+0

Не стесняйтесь делать это по адресу http://meta.stackoverflow.com/, вероятно, есть рекомендация об этом уже независимо от того, но это не похоже на то, что все реализуется, как только оно запрашивается, и это не похоже на то, что я единственный, кто делает это все равно;) – Prix

ответ

1

Перепланированные события полагаются на функцию интервала дат MySQL. Ваше мероприятие будет повторятся на:

SELECT DATE_ADD('2013-08-20', INTERVAL 1 MONTH) 

это 2013-09-20.

Фор подробнее о функциях даты см: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-add

+0

CREATE EVENT event1 ПО РАСПИСАНИЮ КАЖДЫЙ '1 МЕСЯЦ ... Я тоже не хочу изобретать его. Я просто хочу знать, когда наступает следующая дата, когда событие увольняется? Потому что несколько месяцев имеют 30 дней, а другие - 31 день. Надеюсь, я дал вам понять. – HumbleLearner

+0

Я уже использую предложенный метод. Я только что редактировал мой вопрос, чтобы прояснить ситуацию. – HumbleLearner

+0

Понял, что он запускает мероприятие в 00:00 20-го числа каждого месяца, независимо от разницы между ними. Да, он отвечает на мой вопрос. +1 – HumbleLearner