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