Задать вопрос
romandkoz
@romandkoz

Как отсортировать дни рождения от ближайшего?

Нужно вывести имя и дату рождения, сверху ближайший день рождения. Есть запрос под MySQL
MySQL
SELECT NAME, BDAY FROM ( SELECT NAME, BDAY, MONTH(BDAY) AS m, DAY(BDAY) As d FROM birthday_table) AS tmp ORDER BY (m,d) < ( MONTH(CURDATE()), DAY(CURDATE()) ) , m, d"


Как это сделать в PostgreSQL?
По первым ссылкам из Гугла сделал такой запрос, но он неправильно сортирует
PostgreSQL
SELECT * FROM users ORDER BY (EXTRACT(DAY FROM birthday), EXTRACT(MONTH FROM birthday)) < (EXTRACT(DAY FROM CURRENT_DATE), EXTRACT(MONTH FROM CURRENT_DATE))
  • Вопрос задан
  • 141 просмотр
Подписаться 1 Простой 5 комментариев
Решения вопроса 1
SignFinder
@SignFinder
Wintel\Unix Engineer\DevOps
SELECT
    name,
    bday,
    EXTRACT(MONTH FROM bday) AS m,
    EXTRACT(DAY FROM bday) AS d
FROM
    birthday_table
ORDER BY
    MOD(
        (EXTRACT(DOY FROM bday) - EXTRACT(DOY FROM CURRENT_DATE) + 365),
        365
    );
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы