下表汇总了比较某些数据类型与日期、时间或日期时间数据类型时的一些隐式转换。
数据类型 | 数据类型 | 转换 |
---|---|---|
CHAR | DATE | CHAR 转换为 TIMESTAMP;DATE 转换为 TIMESTAMP |
CHAR | TIME | CHAR 转换为 TIME |
CHAR | TIMESTAMP | CHAR 转换为 TIMESTAMP |
CHAR | TIMESTAMP WITH TIME ZONE | CHAR 转换为 TIMESTAMP WITH TIME ZONE |
DATE | TIME | 非法 |
DATE | TIMESTAMP | DATE 转换为 TIMESTAMP |
DATE | TIMESTAMP WITH TIME ZONE | DATE 转换为 TIMESTAMP WITH TIME ZONE |
DATE | SMALLINT、INTEGER、BIGINT 和 NUMERIC | SMALLINT、INTEGER、BIGINT 和 NUMERIC 值用作日期字符串并转换为 TIMESTAMP;DATE 转换为 TIMESTAMP |
DATE | REAL、FLOAT 和 DOUBLE | REAL、FLOAT 和 DOUBLE 用作距 0000-02-29 之后的天数并转换为 TIMESTAMP;DATE 转换为 TIMESTAMP |
TIME | TIMESTAMP | TIMESTAMP 转换为 TIME |
TIME | TIMESTAMP WITH TIME ZONE | 非法 |
TIMESTAMP | TIMESTAMP WITH TIME ZONE | TIMESTAMP 转换为 TIMESTAMP WITH TIME ZONE |
TIMESTAMP | SMALLINT、INTEGER、BIGINT 和 NUMERIC | SMALLINT、INTEGER、BIGINT 和 NUMERIC 值用作日期字符串并转换为 TIMESTAMP |
TIMESTAMP | REAL、FLOAT 和 DOUBLE | REAL、FLOAT 和 DOUBLE 用作距 0000-02-29 之后的天数并转换为 TIMESTAMP |
以下几点详述了上表中介绍的信息。
只有 TIME、TIMESTAMP 和 CHAR 类型的值能够与 TIME 类型的值进行比较。与其它数据类型的值比较将导致转换错误。比较时间值和其它类型的值时,比较数据类型为 TIME。
将 TIMESTAMP、SMALLINT、INTEGER、BIGINT、NUMERIC、REAL、FLOAT 或 DOUBLE 值与 DATE 值进行比较时,比较数据类型始终为 TIMESTAMP。
比较 TIMESTAMP WITH TIME ZONE 值与 DATE 值时,比较数据类型为 TIMESTAMP WITH TIME ZONE。
将时间值转换为 TIMESTAMP 时,结果由当前日期和时间值组合而成。
SMALLINT、INTEGER、BIGINT 和 NUMERIC 类型的精确数值可以转换为日期值。执行该转换时会将数字视为字符串。例如,整数值 20100401 表示 2010 年四月的第一天。
无符号精确数值类型 BIT、TINYINT、UNSIGNED SMALLINT、UNSIGNED INTEGER 和 UNSIGNED BIGINT 无法转换为日期值。
对于 REAL、FLOAT 和 DOUBLE 类型的近似数值,可通过将其视为距虚构日期 0000-02-29 之后的天数来转换为日期。例如,307 表示 0001-01-01 而 734169 表示 2010-04-01。
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |