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.
Вышеприведенный пример использования - всего лишь пример, в реальном сценарии таблица может иметь много столбцов, которые требуют обработки подобного рода.
Не могли бы вы рассказать мне, какой подход лучше с точки зрения производительности и других аспектов и почему?