更新时间:2023-11-04 GMT+08:00
隐式转换
- 小数值类型向大数值类型的转换为隐式转换,不需要用CAST(),数值类型从小到大排列为:TINYINT-->SMALLINT-->INTEGER-->BIGINT-->FLOAT-->DECIMAL。
DECLARE v_A INTEGER := 1000; v_B BIGINT; v_C DECIMAL; BEGIN v_B := 10; v_B := v_A; v_B := v_A + 10; v_C := v_A; END;
数值常量的隐式转换遵循最小化原则,即尽可能用最小的数据类型来定义常量,如常量100会被视为TINYINT,而常量200会被视为SMALLINT,将常量200赋给TINYINT变量时,会报错。
- STRING与TIMESTAMP的相互转换为隐式转换,但用户要确保字符串表示的时间格式的正确性,将非正确格式的字符串转换成TIMESTAMP在运行时会出错。
DECLARE v_S VARCHAR := '2015-11-01 16:00:02.123456'; v_T TIMESTAMP; BEGIN v_T := v_S; v_S := v_T; END;
父主题: 数据类型