diff --git a/backend/futures_trade_record/sql/02_create_update_function.sql b/backend/futures_trade_record/sql/02_create_update_function.sql index 527bf59..267ab90 100644 --- a/backend/futures_trade_record/sql/02_create_update_function.sql +++ b/backend/futures_trade_record/sql/02_create_update_function.sql @@ -4,4 +4,17 @@ BEGIN NEW.updated_at = CURRENT_TIMESTAMP; RETURN NEW; END; -$$ LANGUAGE plpgsql VOLATILE; \ No newline at end of file +$$ LANGUAGE plpgsql VOLATILE; + +-- 创建自动格式化小数的函数(按需去除尾部多余0) +CREATE OR REPLACE FUNCTION format_numeric_to_original(n NUMERIC) +RETURNS TEXT AS $$ +BEGIN + -- 逻辑:如果是整数(小数部分全0),返回整数文本;否则返回去除尾部0的文本 + IF n = TRUNC(n) THEN + RETURN TRUNC(n)::TEXT; -- 整数场景:1.000000 → '1' + ELSE + RETURN TRIM(TRAILING '0' FROM TRIM(TRAILING '.' FROM n::TEXT)); -- 小数场景:1.230000 → '1.23',1.002000 → '1.002' + END IF; +END; +$$ LANGUAGE plpgsql IMMUTABLE; -- IMMUTABLE:相同输入返回相同输出,支持索引 \ No newline at end of file diff --git a/backend/futures_trade_record/sql/04_create_variety_table.sql b/backend/futures_trade_record/sql/04_create_variety_table.sql index 01d63e1..b8ec96e 100644 --- a/backend/futures_trade_record/sql/04_create_variety_table.sql +++ b/backend/futures_trade_record/sql/04_create_variety_table.sql @@ -165,8 +165,12 @@ BEGIN v.id AS variety_id, vn.name AS name, vc.code AS code, - vt.tick AS tick, - vtp.price AS tick_price + -- 调用格式化函数:自动去除尾部多余0 + format_numeric_to_original(vt.tick) AS tick, + format_numeric_to_original(vtp.price) AS tick_price, + -- 可选:保留原始精度字段(供计算使用) + vt.tick AS tick_original, + vtp.price AS tick_price_original FROM variety v LEFT JOIN variety_name vn