我想基于月份对日期时间字段进行汇总计算。
我目前正在使用extra()函数格式化日期,如:
...extra(select="strftime('column', '%m/%Y') as t").values('t').annotate(SUM(foo))
它适用于sqlite3。
在sqlite3中我可以使用strftime(),但这不适用于MySQL。 在MySQL中,我可以使用date_format(),但这不适用于sqlite3。
如何重写这个以适用于两种数据库类型?
大多数开发人员只在他们的开发机器上使用sqlite3,而在prod服务器上使用MySQL。
谢谢!
答案 0 :(得分: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 ;