更新时间: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;
分享:

    相关文档

    相关产品