1. 计算时间之间相差的小时数的两种方式:
法一:转换时间戳
select
cast((unix_timestamp(s1.ship_time)-unix_timestamp(s1.happen_time))/3600 as decimal(10,2))
from s1;
法二:计算时差
select
datediff(or1.ship_time,or1.happen_time)*24+
hour(or1.ship_time)-hour(or1.happen_time) as per_time
from s1;
推荐法一:通过时间戳的转换更精准,只需考虑哪个时间比较靠前,置前即可。
法二:举例,2022.6.1上午二时和2022.5.30的14时之间的计算会有偏差,产生负值。
2.文件格式的编码
现状:调试SQL,代码的逻辑没问题,粘贴到idea里发现有隐藏字符。
解决方案:发现是自己的文件格式编码问题,修改为utf-8类型。