相关疑难解决方法(0)

在sql和应用程序中执行计算的优缺点是什么

shopkeeper 表有以下字段:

id (bigint),amount (numeric(19,2)),createddate (timestamp)
Run Code Online (Sandbox Code Playgroud)

比方说,我有上表.我想获取昨天的记录并通过将金额打印到美分来生成报告.

一种方法是在我的java应用程序中执行计算并执行简单查询

Date previousDate ;// $1 calculate in application

Date todayDate;// $2 calculate in application

select amount where createddate between $1 and $2 
Run Code Online (Sandbox Code Playgroud)

然后遍历记录并在我的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())
Run Code Online (Sandbox Code Playgroud)

然后遍历记录并生成报告

在某种程度上,我的所有处理都是在java应用程序中完成的,并触发了一个简单的查询.在其他情况下,所有转换和计算都在Sql查询中完成.

上面的用例只是一个例子,在实际情况中,表可以有许多列需要处理类似的类.

你能告诉我哪种方法在性能和其他方面更好,为什么?

.net java sql postgresql performance

146
推荐指数
4
解决办法
8万
查看次数

标签 统计

.net ×1

java ×1

performance ×1

postgresql ×1

sql ×1