当前很多公司都使用大数据平台,这是曾经一度被大家吹捧的热点云计算和大数据,似乎硝烟已尽,而今天总算是成为了固定的模式,不再那么高端神秘,最快入手的方式就是把hive的sql掌握好以便门。对于比较熟悉sql的朋友来说,以下学起来就更加容易了。
1:有人提出:“hvie中有类似于oracle的dual表吗?”
然而并没有,可以直接执行 select 1+1
2:转换字段的数据类型
Select cast(field1 as string) From table1;
cast(field2 as integer)
cast(field3 as int)
cast(field4 as bigint)
cast(field5 as double)
3:获取两个日期时间之间的天数
select datediff('2020-01-31','2020-01-01')
--返回结果: 30
4:获取一个月的最后一天
select last_day('2020-01-01')
---返回结果:2020-01-31
5:获取一个日期的年,月,日,当年的第几周
select year('2020-01-01') --返回:2020
select month('2020-11-01') --返回:11
select day('2020-01-15') --返回:15
select week('2020-12-09') --返回:50
6:日期数据加减月份计算
select add_months('2020-01-15 03:23:56',-1)
返回:2019-12-15 03:23:56
7:获取当前日期时间:select now()
8:字符串连接函数
select concat(str1,str2)
9:字符串截取substr
select substr('2020-01-15',1,4)
--返回:2020
10:增加日期天数
select adddate('2020-01-15 03:23:56',15)
--返回:2020-01-30 03:23:56
11:减去日期天数
select date_sub('2020-01-15 03:23:56',14)
--返回:2020-01-01 03:23:56
eg:减去从今天月份的一天,你会得到前一个月的最后一天:
select date_sub(now(), day(now()))
12:获取每月的第一天,和每年的第一天
select trunc('2020-12-20','MM')
---返回:2020-12-01 00:00:00
select trunc('2020-12-20','YY')
---返回:2020-01-01 00:00:00