У меня есть таблица с двумя временными метками (made_at, Verified_at)
Я хочу отсортировать свой результат по году и месяцу созданного_тата и в течение месяца по подтвержденному адресу:
Данные:
created_at, confirmed_at
2018-12-23, 2018-12-06
2018-12-15, 2019-01-20
2019-01-08, 2019-01-11
2019-01-12, 2019-01-13
Результат:
created_at, confirmed_at
2019-01, 2019-01-13
2019-01, 2019-01-11
2018-12, 2019-01-20
2018-12, 2018-12-06
Как я могу использовать временную метку для сортировки по ГГГГ-мм (и как я могу сделать это быстро → как я могу индексировать для этого запроса?)
С функциями year() и month():
select
year(created_at) created_year,
month(created_at) created_month,
confirmed_at
from t
order by created_year, created_month, confirmed_at
или если вы хотите только часть YYYY-MM:
select DATE_FORMAT(created_at, "%Y-%m"), confirmed_at from t
order by year(created_at), month(created_at), confirmed_at
или же:
select DATE_FORMAT(created_at, "%Y-%m") created, confirmed_at from t
order by created, confirmed_at
или же:
select DATE_FORMAT(created_at, "%Y-%m") created, confirmed_at from t
order by EXTRACT(YEAR_MONTH FROM created_at), confirmed_at