shopkeeper
tableau a champs suivants:
id (bigint),amount (numeric(19,2)),createddate (timestamp)
Disons, j'ai le tableau ci-dessus. Je veux obtenir les enregistrements d'hier et générer un rapport par le virement de la somme imprimé pour cents.
Une façon de le faire est de réaliser des calculs dans mon application java et exécuter une requête simple
Date previousDate ;// $1 calculate in application
Date todayDate;// $2 calculate in application
select amount where createddate between $1 and $2
et puis la boucle à travers les documents et de les convertir montant de centimes dans mon application java et de générer le rapport
Une autre façon, c'est comme réaliser des calculs dans une requête sql elle-même:
select cast(amount * 100 as int) as "Cents"
from shopkeeper where createddate between date_trunc('day', now()) - interval '1 day' and date_trunc('day', now())
et puis la boucle à travers les documents et de générer le rapport
Dans un sens , tous mes le traitement est fait dans l'application java et une simple requête est déclenché. Dans d'autres cas, tous les conversions et calculs est faite dans la requête Sql.
Ci-dessus le cas d'utilisation est juste un exemple, dans un scénario réel un tableau peut avoir plusieurs colonnes qui nécessitent le traitement de la même nature.
Pouvez-vous svp me dire quelle approche est la meilleure en termes de performances et d'autres aspects et pourquoi?