2009-04-09 2 views
3

datetime 필드의 월을 기준으로 집계 계산을하고 싶습니다.Django를 사용하여 데이터베이스에서 집계 계산을위한 날짜 형식 선택

나는 현재와 같은 날짜 형식을 추가() 함수를 사용하고 있습니다 :

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

을하고 sqlite3를 위해 잘 작동합니다.

sqlite3에서 strftime()을 사용할 수는 있지만 MySQL에서는 작동하지 않습니다. MySQL에서는 date_format()을 사용할 수 있지만 sqlite3에서는 작동하지 않습니다.

두 데이터베이스 유형 모두에서 작동하도록 어떻게 다시 작성할 수 있습니까?

대부분의 개발자는 dev 컴퓨터에서 sqlite3을 사용하고 prod 서버에서는 MySQL을 사용합니다.

감사합니다.

답변

6

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 ; 
+1

고마워요! 나는 아직 일을하지 못했다. 어디서 커스텀 MySQL 함수를 읽을 수 있습니까? 나는 여기 보았다,하지만 많이 찾지 못했습니다 : http://dev.mysql.com/doc/refman/5.0/ad/adding-functions.html –

+0

잘 했어. 귀하의 예제에서 사용자 정의 함수의 매개 변수는 param_name data_type과 같이 정렬되어야합니다. 그래서 말해야합니다 : strftime (d datetime, format varchar (255) 형식) 지도 주셔서 감사합니다! –

+0

그래, 나는 C/C++/Java의 타입 식별자와 SQL의 식별자 타입 사이를왔다 갔다한다. 나는 채찍 끈이있어. 아니면 래쉬 윈. – tpdi