【发布时间】:2014-01-04 04:47:31
【问题描述】:
我正在学习数据库,我有一个问题,
当我运行以下查询给我 12 个月的平均工资时,
SELECT `EmployeeNo`,(`Salary`/12,) as AverageSalary FROM Employee
它返回的工资是7787.000992213
如何舍入该值?
【问题讨论】:
标签: mysql sql database phpmyadmin
我正在学习数据库,我有一个问题,
当我运行以下查询给我 12 个月的平均工资时,
SELECT `EmployeeNo`,(`Salary`/12,) as AverageSalary FROM Employee
它返回的工资是7787.000992213
如何舍入该值?
【问题讨论】:
标签: mysql sql database phpmyadmin
如果您想截断数字,请使用TRUNCATE:
SELECT `EmployeeNo`,TRUNCATE((`Salary`/12,),0) as AverageSalary FROM Employee
如果您想将其四舍五入为最接近的整数,请使用ROUND:
SELECT `EmployeeNo`,ROUND(`Salary`/12,) as AverageSalary FROM Employee
【讨论】:
ROUND(X), ROUND(X,D) - 将参数 X 舍入到 D 小数位
你的例子:
SELECT `EmployeeNo`, ROUND(`Salary`/12) as AverageSalary FROM Employee
【讨论】:
使用圆函数read here
SELECT `EmployeeNo`, ROUND(`Salary`/12,0) as AverageSalary FROM Employee
【讨论】:
使用MySQL的ROUND()函数:
SELECT 'EmployeeNo', ROUND('Salary'/12, 0) as AverageSalary FROM Employee
或者,由于您不需要任何小数位,您可以绕过第二个参数:
SELECT 'EmployeeNo', ROUND('Salary'/12) as AverageSalary FROM Employee
根据the docs,ROUND() 函数接受两个参数:第一个是要四舍五入的数字,第二个可选指定要四舍五入的小数位:
圆(X),圆(X,D)
将参数 X 舍入到 D 位小数。舍入算法取决于 X 的数据类型。如果未指定,D 默认为 0。 D 可以为负数,导致值 X 的小数点左边的 D 位变为零。
【讨论】:
ROUND() 函数用于将数值字段四舍五入到指定的小数位数。
SELECT `EmployeeNo`, ROUND(`Salary`/12) as AverageSalary FROM Employee
四舍五入只是意味着从 5 向上舍入或从小于 5 向下舍入。 ROUND 是独一无二的,因为您可以告诉 SQL 您希望舍入哪个位置
SELECT ROUND( 1 ); /* returns 1 */
SELECT ROUND( 1.5 ); /* returns 2 */
SELECT ROUND( 1.4635, 1 ); /* returns 1.5 */
【讨论】:
试试这个查询
SELECT `EmployeeNo`,ROUND(`Salary`/12,) as AverageSalary FROM Employee
【讨论】: