#数据类型转换

数据类型转换多发生在操作的输入类型与规定类型不一致,或一个表达式中包含多个不同数据类型的情况中,此时,可以通过隐式转换或显式转换来整合数据类型。

# 隐式转换

下表中的列标题表示原始类型,行标题表示目标类型,✓表示支持转换,X表示不支持转换,--表示无需转换。

(1)

数据类型 TINYINT SMALLINT INTEGER BIGINT TINYINT UNSIGNED SMALLINT UNSIGNED INTEGER UNSIGNED BIGINT UNSIGNED
TINYINT --
SMALLINT --
INTEGER --
BIGINT --
TINYINT UNSIGNED --
SMALLINT UNSIGNED --
INTEGER UNSIGNED --
BIGINT UNSIGNED --
FLOAT
DOUBLE
DECIMAL
CHAR(SIZE)
VARCHAR(SIZE)
DATE
TIME
TIMESTAMP
BINARY(SIZE)
VARBINARY(SIZE)
TINYTEXT
MEDIUMTEXT
TEXT
LONGTEXT
X X X X
TINYBLOB
MEDIUMBLOB
BLOB
LONGBLOB
X X X X

(2)

数据类型 FLOAT DOUBLE DECIMAL CHAR(SIZE) VARCHAR(SIZE) DATE TIME* TIMESTAMP
TINYINT
SMALLINT
INTEGER
BIGINT
TINYINT UNSIGNED
SMALLINT UNSIGNED
INTEGER UNSIGNED
BIGINT UNSIGNED
FLOAT --
DOUBLE --
DECIMAL --
CHAR(SIZE) --
VARCHAR(SIZE) --
DATE --
TIME --
TIMESTAMP --
BINARY(SIZE)
VARBINARY(SIZE)
TINYTEXT
MEDIUMTEXT
TEXT
LONGTEXT
X X
TINYBLOB
MEDIUMBLOB
BLOB
LONGBLOB
X X

(3)

数据类型 BINARY(SIZE) VARBINARY(SIZE) TINYTEXT
MEDIUMTEXT
TEXT
LONGTEXT
TINYBLOB
MEDIUMBLOB
BLOB
LONGBLOB
TINYINT X
SMALLINT X
INTEGER X
BIGINT X
TINYINT UNSIGNED X X
SMALLINT UNSIGNED X X
INTEGER UNSIGNED X X
BIGINT UNSIGNED X X
FLOAT X
DOUBLE X
DECIMAL X
CHAR(SIZE)
VARCHAR(SIZE)
DATE
TIME X X
TIMESTAMP X X
BINARY(SIZE)
VARBINARY(SIZE)
--
TINYTEXT
MEDIUMTEXT
TEXT
LONGTEXT
--
TINYBLOB
MEDIUMBLOB
BLOB
LONGBLOB
--

# 显式转换

显式转换是通过类型转换函数来清楚直言地指定转换的方向。相比隐式转换,显式转换可以使SQL语句更加容易理解,输出类型的可预测性更强。

下表举例列示YashanDB在mysql模式下支持的MySQL类型转换函数:

函数 功能
BIN 其他类型向BIT类型转换(返回结果以VARCHAR类型承载该BIT值)。
CAST 向指定类型转换。
CONVERT 向指定类型或字符集转换。

Note:

  1. CHAR和VARCHAR类型的数据列为空字符串时,不允许与数值类型的数据列进行比较或转换。

  2. 当将字符串格式的浮点数通过隐式转换或显式转换为整数类型时,将按照四舍五入进行转换处理。

pdf-btn 下载文档 copy-btn 复制链接
edit-icon
反馈
coperate-icon
coperate
合作
communication-icon
communicate
交流