Я храню день рождения моих пользователей в формате метки времени Unix (целое число) в базе данных MySQL.
Теперь я хочу отправить по электронной почте пользователям, что их день рождения 30 дней спустя.
Я знаю, что ниже SQL Code нужно выбрать пользователей, у которых сегодня день рождения:
SELECT * FROM members WHERE
DATE_FORMAT(FROM_UNIXTIME(birthday),'%m-%d') = DATE_FORMAT(NOW(),'%m-%d')
но я не знаю, как это изменить для моих целей.
Я слишком много гуглил и нашел этот похожий вопрос на ТАК Но все ответы основаны на ДАТА форматированный день рождения, в то время как мое поле дня рождения основано на TIMESTAMP создано время().
есть ли у вас решение для этого?
Вы могли бы использовать datediff
функция:
SELECT *
FROM members
WHERE DATEDIFF(FROM_UNIXTIME(birthday), NOW()) <= 30
Других решений пока нет …