Выбор форматов даты для совокупных расчетов из базы данных с помощью Django - PullRequest
3 голосов
/ 10 апреля 2009

Я хотел бы сделать агрегированные вычисления на основе месяца для поля даты и времени.

В настоящее время я использую функцию extra () для форматирования даты, например:

...extra(select="strftime('column', '%m/%Y') as t").values('t').annotate(SUM(foo))

и отлично работает для sqlite3.

В sqlite3 я могу использовать strftime (), но это не работает с MySQL. В MySQL я могу использовать date_format (), но это не работает с sqlite3.

Как я могу переписать это, чтобы работать для обоих типов баз данных?

Большинство разработчиков просто используют sqlite3 на своих компьютерах разработчиков, а MySQL используется на сервере prod.

Спасибо!

1 Ответ

6 голосов
/ 10 апреля 2009

Запустите следующее в вашей базе данных MySQL, чтобы создать функцию пересылки.

delimiter //

create function strftime ( d date, format varchar(255) )   
   RETURNS varchar(64)
   LANGUAGE SQL
   DETERMINISTIC
   COMMENT 'synonym for date_format'
   return date_format(d, format) ;
//
delimiter ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...