必要时,数据库服务器自动调用适当的内置强制转型。对于时间数据类型,DATE 与 DATETIME 数据类型之间的转换需要使用 EXTEND 函数进行显式强制转型,而对于数字与 INTERVAL 之间的转换,需要使用 UNITS 运算符进行显式强制转型。内置强制转型不可用于将大型(BYTE、BLOB、CLOB 和 TEXT)内置类型转换为其他内置数据类型。
当将列从一种内置数据类型转换为另一种时,数据库服务器将适当的内置强制转型应用于列中已存在的每个值。如果新的数据类型不能存储任何生成的值,那么 ALTER TABLE 语句会失败。
100 400 700 50000 700
如果您尝试将数据从 FLOAT 或 SMALLFLOAT 列传送至 INTEGER、SMALLINT 或 DECIMAL 列,那么会发生相同的情况。在数据类型转换期间可能会发生溢出、下溢或截断错误。
下面各节描述某些类型的强制转型和转换期间的数据库服务器行为。