UltraLite allows you to request data type conversions explicitly, by using either the CAST or CONVERT function.
In most cases, self-casting has no effect on operations. However, self-casts to CHAR/VARCHAR, BINARY/VARBINARY and NUMERIC are not no-op procedures.
You can CAST or CONVERT most combinations of data types, as illustrated by the table that follows.
In some cases, however, the ability to convert or not is contingent upon the value used in the conversion. As the Value-dependent column shows, the value must be compatible with the new data type to avoid generating a specific type of conversion error. For example:
If you cast varchar "1234" to long, this conversion is supported. However, if you cast varchar "hello" to long, then this conversion generates a SQLE_CONVERSION_ERROR error because hello is not a number.
If you cast long 1234 to short, this conversion is supported. However, if you cast long 1000000 to short, then this conversion generates a SQLE_OVERFLOW_ERROR error, because 1000000 is beyond the range of numbers a short can hold.
From | Always | Never | Value-dependent |
---|---|---|---|
BINARY or VARBINARY |
CHAR or 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 or 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 or 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 or VARCHAR |
BINARY or VARBINARY CHAR or 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 or VARCHAR LONG VARCHAR |
BINARY or 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 or VARBINARY CHAR or 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 or VARBINARY CHAR or 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 or VARBINARY CHAR or 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 or VARBINARY CHAR or 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 or VARBINARY CHAR or 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 or VARBINARY CHAR or 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 or VARBINARY CHAR or 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 or VARCHAR REAL DOUBLE NUMERIC |
LONG VARCHAR BINARY or VARBINARY LONG BINARY DATE TIME TIMESTAMP UID |
BIT TINYINT SHORT INT SIGNED SHORT LONG INT SIGNED LONG BIGINT SIGNED BIG |
DOUBLE |
CHAR or VARCHAR DOUBLE NUMERIC |
LONG VARCHAR BINARY or VARBINARY LONG BINARY DATE TIME TIMESTAMP UID |
BIT TINYINT SHORT INT SIGNED SHORT LONG INT SIGNED LONG BIGINT SIGNED BIG REAL |
NUMERIC |
CHAR or VARCHAR REAL NUMERIC DOUBLE |
LONG VARCHAR LONG BINARY DATE TIME TIMESTAMP UID |
BINARY or VARBINARY2 BIT SHORT INT SIGNED SHORT LONG INT SIGNED LONG BIGINT SIGNED BIG TINYINT |
DATE |
CHAR or 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 or VARBINARY UID |
|
TIME |
CHAR or 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 or VARBINARY UID |
|
TIMESTAMP |
CHAR or 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 or VARBINARY UID |
|
UID |
CHAR or 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 or VARBINARY1 |
1 The BINARY value must be a 16 byte length to be compatible with a UUID.
2 Only works if the source NUMERIC value is able to cast as a BIGINT.
Discuss this page in DocCommentXchange. Send feedback about this page using email. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |