Я не знаю SQLAlchemy, поэтому я могу быть вне цели. Тем не менее, я думаю, что все, что вам нужно, это:
SELECT date_formatter(datetime_field, "format-specification") AS dt_field, COUNT(*)
FROM logs
GROUP BY date_formatter(datetime_field, "format-specification")
ORDER BY 1;
ОК, возможно, вам не нужен ORDER BY, и, возможно, было бы лучше переопределить выражение даты. Там могут быть альтернативы, такие как:
SELECT dt_field, COUNT(*)
FROM (SELECT date_formatter(datetime_field, "format-specification") AS dt_field
FROM logs) AS necessary
GROUP BY dt_field
ORDER BY dt_field;
И так далее, и тому подобное. Обычно вы форматируете поле даты и времени, а затем приступаете к группировке и т. Д. Для отформатированного значения.