大数据之Hive:Hive日期处理函数之unix_timestamp

目录

  • 1.unix_timestamp
    • 1.1语义
    • 1.2:实例
  • 2.from_unixtime
    • 1.1语义
    • 1.2:实例
  • 3.实战
    • 3.1需求:
    • 3.2分析:
    • 3.3具体实现:

1.unix_timestamp

1.1语义

返回时间的时间戳,该函数只能够精确到秒级别的时间

1.2:实例

hive> SELECT unix_timestamp() ; (执行使得时间:2009-08-06 10:10:40->1249524739 
hive> SELECT unix_timestamp('2009-08-06','yyyy-MM-dd') ; 
->1249488000 
hive> SELECT unix_timestamp('2009-0806','yyyy-MMdd') ; 
->1249488000 

2.from_unixtime

1.1语义

将时间戳(精确到秒级别的时间)转化为某种格式的日期

1.2:实例

hive>SELECT from_unixtime( 1249488000, 'yyyy-MM-dd');  
->2009-08-05
hive>SELECT from_unixtime( 1249488000, 'yyyy年MM月dd日');  
->20090805

3.实战

3.1需求:

现在有这样一个时间’2021-0320’,需要将这个时间变成2021/03/20;

3.2分析:

首先想到data_format函数,可以将时间转换成某种格式,可是传入的应该是标准形式的时间参数,显然’2021-0320’,不符合时间格式(此为标准格式2021-03-20);此时我们可以想到用unix_timestamp,from_unixtime函数,先用unix_timestamp函数把’2021-0320’转换为时间戳,再用from_unixtime函数把时间戳转化为2021/03/20格式的时间;

3.3具体实现:

hive>SELECT UNIX_TIMESTAMP('2021-0320','yyyy-MMdd');
->1616198400
hive>SELECT from_unixtime(1616198400,'yyyy/MM/dd');
->2021/03/20

hive>SELECT from_unixtime(UNIX_TIMESTAMP('2021-0320','yyyy-MMdd'),'yyyy/MM/dd');
->2021/03/20

补充:date_format函数(根据格式整理日期)

hive (gmall)> select date_format('2021-03-20','yyyy/MM/dd');
2021/03/20

你可能感兴趣的:(大数据系列二)