shopkeeper
таблица имеет следующие поля:
id (bigint),amount (numeric(19,2)),createddate (timestamp)
Допустим, у меня есть таблица выше. Я хочу получить записи за вчера и
создать отчет, напечатав сумму в центах.
Один из способов - выполнить вычисления в моем java-приложении и выполнить простой запрос
.
Date previousDate ;// $1 calculate in application
Date todayDate;// $2 calculate in application
select amount where createddate between $1 and $2
, а затем перебрать записи и преобразовать сумму в центы в моем java-приложении и сгенерировать отчет
Другой способ подобен выполнению вычислений в самом SQL-запросе:
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())
, а затем перебрать записи и сгенерировать отчет
Одним образом, вся моя обработка выполняется в Java-приложении, и запускается простой запрос.
В другом случае все преобразования и вычисления выполняются в запросе Sql.
Приведенный выше вариант использования является лишь примером, в реальном сценарии таблица может иметь много столбцов, требующих обработки аналогичного вида.
Подскажите, пожалуйста, какой подход лучше с точки зрения производительности и других аспектов и почему?