wlzboy
4 天以前 c098f1e3a3e052aa3d65584aae6dc003a70d75ad
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
-- ============================================
-- 修复 task_ratio 字段范围限制问题
-- 问题: decimal(5,4) 最大值为 9.9999,可能不足以存储异常数据
-- 解决: 扩大为 decimal(6,4),最大值 99.9999
-- ============================================
 
-- 1. 查看当前字段定义
DESC tb_vehicle_mileage_stats;
 
-- 2. 修改字段类型
ALTER TABLE tb_vehicle_mileage_stats 
MODIFY COLUMN task_ratio DECIMAL(6,4) DEFAULT 0.0000 COMMENT '任务里程占比(0-1,异常时可能超出)';
 
-- 3. 验证修改结果
DESC tb_vehicle_mileage_stats;
 
-- 4. 查询超出正常范围的数据(占比应在0-1之间)
SELECT stats_id, vehicle_id, vehicle_no, stat_date, 
       total_mileage, task_mileage, task_ratio
FROM tb_vehicle_mileage_stats
WHERE task_ratio > 1.0 OR task_ratio < 0.0
ORDER BY task_ratio DESC;
 
-- 5. 修复异常数据(可选)
-- UPDATE tb_vehicle_mileage_stats SET task_ratio = 1.0 WHERE task_ratio > 1.0;
-- UPDATE tb_vehicle_mileage_stats SET task_ratio = 0.0 WHERE task_ratio < 0.0;