Перейти к основному содержимому

Сортировка по форматированному виду даты

Задача

Вывести данные в историческом порядке, но отобразить дату в произвольном, удобном для пользователя формате (например, "17.02 (Вт)", "17.02.26").

Проблема

Если просто преобразовать поле с датой в строку нужного формата и использовать её как разрез, сортировка по этому полю будет алфавитной (лексикографической), а не хронологической. В результате 04.12.15 идет до 08.05.15, а не в правильной последовательности.

Решение

  1. В качестве разреза будем использовать отформатированную дату

  1. Добавим группировку и сортировку по полю даты с той же агрегацией. Сейчас агрегируем по днем и подойдет изначальное поле даты.

При агрегации по месяцам (вывод названия месяца) тогда можно использовать id месяца для группировки и сортировки

Итог

Красивые подписи дат на графике, при этом сами данные отсортированы в правильном хронологическом порядке.