2010-06-13 4 views
3

Я хочу создать систему уведомлений. Вскоре ... чтобы сравнить две даты, единственная проблема заключается в том, что я хочу сравнить месяцы. чтобы узнать, прошел ли от последнего уведомления месяц или два.Как сравнить даты в php и sql?

Я хочу использовать один или два месяца из записи в базе данных mysql.

клиент должен выбрать, когда должно прибыть уведомление, один или два месяца.

спасибо, Sebastian

ответ

2

Ваше заявление должно выглядеть следующим образом:

SELECT * FROM table WHERE date_column + INTERVAL 1 MONTH >= NOW() 

Вы добавляете 1 (или 2) месяца до даты столбца, в котором хранится дата и сравнить его с текущим временем «СЕЙЧАС()» ,

Это работает с столбцами DATE, DATETIME и TIMESTAMP.

+0

благодарит за вашу помощь. У меня есть еще один вопрос. как я могу добавить к mysql только день. Могу ли я создать ячейку и объявить ее DATE (2) – sebastian

+0

, почему бы не использовать столбец tinyint? – 2ndkauboy

+0

Я не знаю, как я могу это сделать. Я догадался, что DATE (2) будет работать. – sebastian

0

Вы можете compare months двух datetime столбцов внутри из MySQL.

Единственный недостаток, связанный с компьютером, говорящий «месяц прошел», состоит в том, что «месяц» является произвольной единицей времени; у некоторых есть 30 дней, у других - 31, а у одного даже есть 28. Я бы предложил использовать логику «30 дней», потому что она основана на заданной единице времени, в день, которая составляет 86 400 секунд (с незначительной ошибкой конечно).

+0

благодарит за вашу помощь. У меня есть еще один вопрос. как я могу добавить к mysql только день. Могу ли я создать ячейку и объявить ее DATE (2)? – sebastian

+0

Просто объявите его как 'datetime' и используйте функцию' day ([colname]) 'в ваших операторах select. – amphetamachine

+0

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

Смежные вопросы