Используйте MySQL, чтобы определить, является ли сегодня день рождения пользователя - PullRequest
10 голосов
/ 08 февраля 2010

У меня все дни рождения пользователей хранятся в виде метки времени UNIX, и я хочу каждый день отправлять электронные письма пользователям, у которых в этот день день рождения.

Мне нужно сделать запрос MySQL, который получит все строки, содержащие день рождения на сегодняшнюю дату.

Кажется, это должно быть довольно просто, но, возможно, я просто слишком усложняю.

Ответы [ 13 ]

0 голосов
/ 25 января 2012

Проверьте этот URL: http://www.tizag.com/mysqlTutorial/mysql-date.php

0 голосов
/ 08 февраля 2010

Не могли бы вы просто выбрать все строки, которые соответствуют дате текущего дня? Вы также можете использовать функцию FROM_UNIXTIME () для преобразования метки времени unix в дату:

mysql> SELECT FROM_UNIXTIME (1196440219); -> '2007-11-30 10: 30: 19'

Это задокументировано с http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_from-unixtime

0 голосов
/ 08 февраля 2010
set @now=now();
select * from user where (month(birthday) = month(@now) and day(birthday) = day(@now)) or
  (month(birthday) = 2 and day(birthday) = 29 and month(@now) = 2 and day(@now) = 28 and
  month(date_add(@now, interval 1 day)) = 3);
...