mysql两个时间(我有两个字段是datetime类型)相减返回两个时间的小时差,精确到小数点后两位应该怎么写
发布网友
发布时间:2022-04-10 05:59
我来回答
共3个回答
懂视网
时间:2022-04-10 10:21
- select format(23456.789,2);
[html] view plain copy
- select formate(salary,2);
输出:
[html] view plain copy
- 23,456.79
,format()函数会对小数部分进行四舍五入操作,整数部分从右向左每3位一个逗号进行格式化输出,如下图:
2、调用mysql自带的函数truncate(x,d)
例如:
[html] view plain copy
- select truncate(23456.789,2);
[html] view plain copy
- select truncate(salary,2);
输出:
[html] view plain copy
- 23456.78
truncate()函数会将小数部分2位以后的值直接舍去,如下图:
3、调用mysql自带的函数convert(expr,type);
例如:
[html] view plain copy
- select convert(23456.789,decimal(10,2));
[html] view plain copy
- select convert(salary,decimal(10,2));
输出:
[html] view plain copy
- 23456.79
convert()函数会对小数部分进行四舍五入操作,解释一下decimal(10,2),它表示最终得到的结果整数部分位数加上小数部分位数小于等于10,小数部分位数2,如下图:
一般情况下我们都会选择第三种方式
mysql查询结果单位换算后小数位数的保留方式
标签:net 格式化输出 部分 tools text view convert 情况 mat
热心网友
时间:2022-04-10 07:29
在mysql中,这种计算可用TIMESTAMPDIFF函数来解决,但是解决过程中需要将数据多次加工。
1、创建测试表及插入测试数据:
create table test
(time1 datetime,
time2 datetime)
insert into test values ('2015-04-03 17:01:09','2015-06-03 22:09:30')
2、目前要结算time2和time1的时间差,用如下语句:
select round(TIMESTAMPDIFF(second,time1,time2)/3600,2) from test
结果如图:
解读:
首先,先用
select TIMESTAMPDIFF(second,time1,time2) from test
来计算两个时间之间的秒数差。
然后,得到的结果除以3600,即为这两个时间之间的小时数。
最后因为要求保留2位小数,则通过round函数,四舍五入,取出2位小数即可。
热心网友
时间:2022-04-10 08:47
FORMAT(X,D)
将数字X的格式写为'#,###,###.##',以四舍五入的方式保留小数点后D位, 并将结果以字符串的形式返回。若D为0,则返回结果不带有小数点,或不含小数部分。
mysql>SELECT FORMAT(12332.123456, 4);
-> '12,332.1235'
ROUND(X) ROUND(X,D)
返回参数X,其值接近于最近似的整数。在有两个参数的情况下,返回X,其值保留到小数点后D位,而第D位的保留方式为四舍五入。若要接保留X值小数点左边的D位,可将D设为负值。
mysql>SELECT ROUND(-1.23);
-> -1
mysql>SELECT ROUND(-1.58);
-> -2
mysql>SELECT ROUND(1.58);
-> 2
mysql>SELECT ROUND(1.298, 1);
-> 1.3