数学运算符的比较
这些运算的结果取决于类型转换规则和数据类型兼容性。
兼容性
暗示 a one-to-one 特定值和特定数据类型并不总是需要匹配的。因为有些数据类型是
兼容
,隐式转换,或
胁迫
,是可能的。有关更多信息,请参阅
隐式转换类型
:如果数据类型不兼容,您有时可通过使用显式转换函数将值从一种数据类型转换为另一种数据类型。
一般兼容性和转换规则
请注意下列兼容性和转换规则:
一般来说,同属一种类型类别的数据类型(如不同的数字数据类型)是兼容的并且可隐式转换。
例如,通过使用隐式转换,您可以将一个小数值插入整数列。小数进位为整数。或者,您可以从日期中提取一个数字值(如
2008
)并将其插入到整数列中。
数字数据类型可用作在您尝试插入时出现的溢出条件 out-of-range 价值观。例如,精度为 5 的小数值无法放入到精度定义为 4 的小数列中。整数或小数的全部部分永远不会被截断。但是,小数文本和文本可用作适当和向下四舍五入的参数。但是,对于显示强制转换表中选定的值而得出的结果,不会进行四舍五入。
不同类型的字符串是兼容的。包含单字节数据的 VARCHAR 列字符串和 CHAR 列的字符串与其小数位数的差值,或无法插入或转换。包含多字节数据的 VARCHAR 字符串是不可兼容的。此外,如果字符串是适当的文字值,则此值无法插入或更新,则此值无法插入或更新,则此值无法插入或更新。任何前文本和尾部的文本和文本都将被忽略。反过来,您也可以将日期、时间、时间戳或数字值转换为固定长度或可变长度的字符串。
您要强制转换为数字类型的字符串必须包含数字的字符表示形式。例如,你可以转换字符串
'1.0'
要么
'5.9'
转换为十进制值,但你不能转换字符串
'ABC'
到任何数字类型。
如果将十进制值与字符串进行比较,AWS Clean Rooms试图将文本转换为十文本和日期的参数。在将所有其他数值与字符串进行比较时,数值将转换为字符串。如果要强制进行相反的转换(例如,将字符串转换为正数,或者将 DECIMAL 值转换为字符串),请使用显式函数,例如
CAST 函数
。
若要将 64 位 DECIMAL 或 NUMERIC 值转换为更高的精度,必须使用显式转换函数(如 CAST 或 CONVERT)。
将 DATE 或 TIMESTAMP 转换为 TIMESTAMPTZ 时,或者将 TIME 转换为 TIMETZ 时,时区设置为当前会话时区。会话时区默认为 UTC。
与之类似,TIMESTAMPTZ 可根据当前会话时区转化为 DATE、TIME 或 TIMESTAMP。会话时区默认为 UTC。转换后,时区信息将被删除。
使用当前会话时区(默认为 UTC)将代表有指定时区的时间戳的字符串转换为 TIMESTAMPTZ。使用当前会话时区(默认为 UTC)将代表有指定时区的时间的字符串转换为 TIMETZ。
隐式转换类型
有两种隐式转换类型: