Je voudrais faire des calculs agrégés basés sur le mois pour un champ datetime.Sélection des formats de date pour les calculs agrégés à partir de la base de données avec Django
Je suis actuellement en utilisant la fonction supplémentaire() pour formater la date comme:
...extra(select="strftime('column', '%m/%Y') as t").values('t').annotate(SUM(foo))
et il fonctionne très bien pour sqlite3.
En sqlite3, je peux utiliser strftime(), mais cela ne fonctionne pas avec MySQL. Dans MySQL, je peux utiliser date_format(), mais cela ne fonctionne pas avec sqlite3.
Comment puis-je réécrire cela pour travailler pour les deux types de base de données?
La plupart des développeurs utilisent simplement sqlite3 sur leurs machines dev, et MySQL est utilisé sur le serveur prod.
Merci!
Merci! Je n'ai pas encore tout compris. Où puis-je en savoir plus sur les fonctions MySQL personnalisées? J'ai regardé ici, mais je n'ai pas trouvé beaucoup: http://dev.mysql.com/doc/refman/5.0/fr/adding-functions.html –
Ça a marché. Dans votre exemple, les paramètres de la fonction personnalisée doivent être classés comme suit: nom_paramètre type_données. Il devrait donc dire: créer une fonction strftime (d datetime, format varchar (255)) Merci pour le guidage! –
Ouais, je fouettais entre l'identifiant de type C/C++/Java et le type d'identificateur de SQL. Je suppose que j'ai eu un coup de fouet cervical. Ou un coup de fouet. – tpdi