Я создаю систему регистрации детей, и мне нужно выяснить, сколько месяцев детям. Это довольно легко, однако я хочу только извлечь детей, у которых "месячный день рождения".
Что я имею в виду под «месячным днем рождения», так это если бы они родились 23 ноября, тогда 23 декабря будет их 1-месячный день рождения. 23 января исполняется 2 месяца. И так далее ...
Теперь мой код ниже говорит мне, сколько им месяцев, но не является ли это их "месяцем рождения".
Есть идеи, как мне заставить это работать?
SELECT PERIOD_DIFF( DATE_FORMAT('2011-11-23', '%Y%m'), DATE_FORMAT(birthday.meta_value, '%Y%m') ) AS months
FROM $db->members AS m
JOIN $db->members_meta AS birthday ON birthday.member_id = m.id AND birthday.meta_key = 'birthday' AND birthday.meta_value != ''
WHERE AND m.deleted = 0
GROUP BY m.id
Полагаю, нам нужно будет учесть, если они родятся в високосные годы (29 февраля), 30 и 31 месяца. Я нашел этот код, который работает, чтобы узнать thei
(
2012 % 4 <> 0
OR (
2012 % 100 = 0
AND 2012 % 400 <> 0
)
)
AND '11-23' = '03-01' // 11-23 is the current month and day
AND DATE_FORMAT(birthday.meta_value, '%m-%d') = '02-29'