隐式转换 小转大 显示转换 cast

cast(** AS TYPE) 如果不能转换,返回NULL

STRING也可以隐式地转换成DOUBLE!但是你要记住,BOOLEAN类型不能转换为其他任何数据类型!

左 往 右转换

boolean
tinyint smallint int bigint float double decimal string varchar
1byte 2byte 4byte 8byte 4byte精度 8byte精度 - - -
timestamp date
binary
  1. 如果将浮点型的数据转换成int类型的,内部操作是通过round()或者floor()函数来实现的,而不是通过cast实现!
  2. 对于BINARY类型的数据,只能将BINARY类型的数据转换成STRING类型。如果你确信BINARY类型数据是一个数字类型(a number),这时候你可以利用嵌套的cast操作,比如a是一个BINARY,且它是一个数字类型,那么你可以用下面的查询:

SELECT (cast(cast(a as string) as double)) from src; 我们也可以将一个String类型的数据转换成BINARY类型。

  1. 对于Date类型的数据,只能在Date、Timestamp以及String之间进行转换
有效的转换 结果
cast(date as date) 返回date类型
cast(timestamp as date)
cast(string as date) 如果不是YYYY--MM-DD格式返回NULL
cast(date as timestamp)
cast(date as string) 返回YYYY-MM-DD格式

https://www.iteblog.com/archives/892.html

results matching ""

    No results matching ""