为什么postgres如何对待演员和' ::'表达不同?

时间:2015-10-22 09:48:18

标签: postgresql

有人向我解释为什么看似相似的表达有两种不同的结果

db=> select cast(8/3.0 as integer) as cast1, 8/3.0::int as int1;
 cast1 | int1
-------+------
     3 |    2

1 个答案:

答案 0 :(得分:2)

  • 8 / 3.0是2.6 => CAST到整数= 3
  • 8 / 3.0 :: int = 8 /(3.0 :: int)= 8/3 =输出2的整数除法