UltraLite 允许使您使用 CAST 或 CONVERT 函数显式地请求数据类型转换。
大多数情况下,自转换对操作没有影响。但是,自转换到 CHAR/VARCHAR、BINARY/VARBINARY 和 NUMERIC 不是空操作过程。
可以 CAST 或 CONVERT 大多数数据类型的组合,如下表所示。
但在某些情况下,能否转换取决于转换中使用的值。因为 Value-dependent 列显示的值必须与新数据类型兼容,以避免生成特定类型的转换错误。例如:
如果将 varchar "1234" 转换为 long,此转换会受到支持。但是,如果将 varchar "hello" 转换为 long,那么此转换会生成 SQLE_CONVERSION_ERROR 错误,因为 hello 并不是一个数字。
如果将 long 1234 转换为 short,此转换会受到支持。但是,如果将 long 1000000 转换为 short,那么此转换会生成 SQLE_OVERFLOW_ERROR 错误,因为 1000000 超出了短整型值可容纳的数字范围。
从 | 始终 | 永不 | 与值相关 |
---|---|---|---|
BINARY 或 VARBINARY |
CHAR 或 VARCHAR BINARY LONG BINARY BIT TINYINT SHORT INT SIGNED SHORT LONG INT SIGNED LONG BIGINT SIGNED BIG |
LONG VARCHAR REAL TIME TIMESTAMP DOUBLE DATE |
NUMERIC UID1 |
LONG BINARY |
BINARY LONG BINARY |
BIT CHAR 或 VARCHAR LONG VARCHAR TINYINT SHORT INT SIGNED SHORT LONG INT SIGNED LONG BIGINT SIGNED BIG REAL DOUBLE NUMERIC DATE TIME TIMESTAMP UID |
N/A |
BIT |
CHAR 或 VARCHAR BINARY BIT TINYINT SHORT INT SIGNED SHORT LONG INT SIGNED LONG BIGINT REAL SIGNED BIG DOUBLE NUMERIC |
LONG VARCHAR LONG BINARY DATE TIME TIMESTAMP UID |
N/A |
CHAR 或 VARCHAR |
BINARY 或 VARBINARY CHAR 或 VARCHAR LONG VARCHAR |
LONG BINARY |
BIT TINYINT SIGNED SHORT SHORT INT LONG INT SIGNED LONG BIGINT SIGNED BIG DOUBLE NUMERIC REAL DATE TIME TIMESTAMP UID |
LONG VARCHAR |
CHAR 或 VARCHAR LONG VARCHAR |
BINARY 或 VARBINARY LONG BINARY BIT TINYINT SHORT INT SIGNED SHORT LONG INT SIGNED LONG BIGINT SIGNED BIG REAL NUMERIC DATE TIME TIMESTAMP DOUBLE UID |
|
TINYINT |
BINARY 或 VARBINARY CHAR 或 VARCHAR TINYINT SHORT INT SIGNED SHORT LONG INT SIGNED LONG BIGINT SIGNED BIG REAL DOUBLE NUMERIC |
LONG VARCHAR LONG BINARY DATE TIME TIMESTAMP UID |
|
SHORT INT |
BINARY 或 VARBINARY CHAR 或 VARCHAR SHORT INT LONG INT SIGNED LONG BIGINT SIGNED BIG REAL DOUBLE NUMERIC |
LONG VARCHAR LONG BINARY DATE TIME TIMESTAMP UID |
BIT TINYINT SIGNED SHORT |
SIGNED SHORT |
BINARY 或 VARBINARY CHAR 或 VARCHAR SIGNED SHORT SIGNED LONG SIGNED BIG REAL DOUBLE NUMERIC |
LONG VARCHAR LONG BINARY DATE TIME TIMESTAMP UID |
SHORT INT LONG INT BIGINT BIT TINYINT |
LONG INT |
BINARY 或 VARBINARY CHAR 或 VARCHAR LONG INT BIGINT SIGNED BIG REAL DOUBLE NUMERIC |
LONG VARCHAR LONG BINARY DATE TIME TIMESTAMP UID |
BIT TINYINT SHORT INT SIGNED SHORT SIGNED LONG |
SIGNED LONG |
BINARY 或 VARBINARY CHAR 或 VARCHAR SIGNED LONG SIGNED BIG REAL DOUBLE NUMERIC DATE TIMESTAMP |
LONG VARCHAR LONG BINARY TIME UID |
BIT TINYINT SHORT INT SIGNED SHORT LONG INT BIGINT |
BIGINT |
BINARY 或 VARBINARY CHAR 或 VARCHAR BIGINT REAL DOUBLE NUMERIC |
LONG VARCHAR LONG BINARY DATE TIME TIMESTAMP UID |
BIT TINYINT SHORT INT SIGNED SHORT LONG INT SIGNED LONG SIGNED BIG |
SIGNED BIG |
BINARY 或 VARBINARY CHAR 或 VARCHAR SIGNED BIG REAL DOUBLE NUMERIC DATE TIMESTAMP |
LONG VARCHAR LONG BINARY TIME UID |
BIT TINYINT SHORT INT SIGNED SHORT LONG INT SIGNED LONG BIGINT |
REAL |
CHAR 或 VARCHAR REAL DOUBLE NUMERIC |
LONG VARCHAR BINARY 或 VARBINARY LONG BINARY DATE TIME TIMESTAMP UID |
BIT TINYINT SHORT INT SIGNED SHORT LONG INT SIGNED LONG BIGINT SIGNED BIG |
DOUBLE |
CHAR 或 VARCHAR DOUBLE NUMERIC |
LONG VARCHAR BINARY 或 VARBINARY LONG BINARY DATE TIME TIMESTAMP UID |
BIT TINYINT SHORT INT SIGNED SHORT LONG INT SIGNED LONG BIGINT SIGNED BIG REAL |
NUMERIC |
CHAR 或 VARCHAR REAL NUMERIC DOUBLE |
LONG VARCHAR LONG BINARY DATE TIME TIMESTAMP UID |
BINARY 或 VARBINARY2 BIT SHORT INT SIGNED SHORT LONG INT SIGNED LONG BIGINT SIGNED BIG TINYINT |
DATE |
CHAR 或 VARCHAR SIGNED LONG SIGNED BIG DATE TIMESTAMP |
LONG VARCHAR LONG BINARY BIT TINYINT SHORT INT SIGNED SHORT LONG INT BIGINT REAL DOUBLE NUMERIC TIME BINARY 或 VARBINARY UID |
|
TIME |
CHAR 或 VARCHAR TIME TIMESTAMP |
LONG VARCHAR LONG BINARY BIT TINYINT SHORT INT SIGNED SHORT LONG INT SIGNED LONG BIGINT SIGNED BIG REAL DOUBLE NUMERIC DATE BINARY 或 VARBINARY UID |
|
TIMESTAMP |
CHAR 或 VARCHAR SIGNED LONG SIGNED BIG DATE TIME TIMESTAMP |
LONG VARCHAR LONG BINARY BIT TINYINT SHORT INT SIGNED SHORT LONG INT BIGINT REAL DOUBLE NUMERIC BINARY 或 VARBINARY UID |
|
UID |
CHAR 或 VARCHAR UID |
LONG VARCHAR LONG BINARY BIT TINYINT SHORT INT SIGNED SHORT LONG INT SIGNED LONG BIGINT SIGNED BIG REAL DOUBLE NUMERIC DATE TIME TIMESTAMP |
BINARY 或 VARBINARY1 |
1 BINARY 值的长度必须为 16 字节,以便与 UUID 兼容。
2 仅当源 NUMERIC 值能够转换为 BIGINT 时才适用。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |