Hive&Mysql&Oracle类型转换


Oracle搜索地址
MySQL搜索地址
Hive文档
Impala文档

1. oracle函数

to_number()

将float double char 转换成 number

to_char()

将character number datetime转换成char

to_date()

将char 转换成 date

to_date('字段','yyyy-mm-dd hh24:mi:ss')

2. Mysql函数

date_formate()

将date 转换成指定格式的字符串

str_to_date()

将str 按照指定的格式格式化成datetime

str_to_date('字段','%Y%m%d %H:%i:%s')
cast()

转换任意类型

将百分数转换成小数

left(replace(test,"%","")*100,6)

将小数转换成百分数

concat(10,’%’)

3. 比较大小

  1. 字符串和日期可以比较大小
  2. int可以比较大小

4. Hive类型转换

4.1 隐式转换

  1. Hive包括 隐式转换(implicit conversions)和显式转换(explicitly conversions)
  2. 比如我们对两个不同数据类型的数字进行比较,假如一个数据类型是INT型,另一个 是SMALLINT类型,那么SMALLINT类型的数据将会被隐式转换地转换为INT类型,这个到底和Java中的一样;但是我们不能隐式地将一个 INT类型的数据转换成SMALLINT或TINYINT类型的数据,这将会返回错误,除非你使用了CAST操作。
  3. 任何整数类型都可以隐式地转换成一个范围更大的类型。TINYINT,SMALLINT,INT,BIGINT,FLOAT和STRING都可以隐式 地转换成DOUBLE;是的你没看出,STRING也可以隐式地转换成DOUBLE!但是你要记住,BOOLEAN类型不能转换为其他任何数据类型!
    在这里插入图片描述

4.2 date类型

对于Date类型的数据,只能在Date、Timestamp以及String之间进行转换。
在这里插入图片描述

4.3 不能隐式转换的

select cast('18' as int)

4.4 字符串类型的时间格式进行比较

unix_timestamp('2019-07-17 08:56:59') - unix_timestamp('2019-07-17 08:56:58')

版权声明:本文为liyang_007原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。