Mavrikii
Platinum Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору zagorisback потому что в запросе нет сортировки, а ORDER BY birthday будет неправильным, так как будет учитывать год рождения, а не тот, что сейчас. Цитата: ORDER BY (CASE WHEN DATE_FORMAT(birthday, '%m-%d') < DATE_FORMAT(NOW(), '%m-%d') THEN CONCAT(DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 1 YEAR), '%Y-'), DATE_FORMAT(birthday, '%m-%d')) ELSE CONCAT(DATE_FORMAT(NOW(), '%Y-'), DATE_FORMAT(birthday, '%m-%d')) END) | проще эту скобку использовать в выборке и далее по ней сортировать. Цитата: SELECT *, (CASE WHEN DATE_FORMAT(birthday, '%m-%d') < DATE_FORMAT(NOW(), '%m-%d') THEN CONCAT(DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 1 YEAR), '%Y-'), DATE_FORMAT(birthday, '%m-%d')) ELSE CONCAT(DATE_FORMAT(NOW(), '%Y-'), DATE_FORMAT(birthday, '%m-%d')) END) as newdate FROM actors WHERE newdate BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 2 WEEK) ORDER BY newdate asc | не проверял |