修改SQL查询:将员工日薪、时薪截断至便士而非四舍五入
解决方案
要实现将薪资计算结果截断到最近便士(保留两位小数且不四舍五入),可以利用TRUNC()函数先对计算后的数值做截断处理,再用TO_CHAR()进行格式化输出。修改后的查询语句如下:
SELECT SNAME, TO_CHAR(SAL, 'L9,999') AS MONTHLY, TO_CHAR(TRUNC(SAL/22, 2), 'L999.99') AS DAILY, TO_CHAR(TRUNC(SAL/22/8, 2), 'L99.99') AS HOURLY FROM STAFF;
核心逻辑说明
TRUNC(数值, 小数位数):这个函数会直接截断指定小数位后的所有数字,完全不触发四舍五入。比如TRUNC(1500/22, 2)的结果是68.18,而非四舍五入后的68.19。- 先截断再格式化:确保
TO_CHAR()处理的是已经截断完成的数值,避免格式化过程中自动执行四舍五入操作。
内容的提问来源于stack exchange,提问作者user20834985
相关产品推荐
相关产品推荐

