Hive时间标准化|时间格式化

select to_date(from_unixtime(UNIX_TIMESTAMP('2020/6/05 05:02:01','yyy/M/dd')))

 上面是标准化成为date类型:

格式化from_unixtime(unix_timestamp('时间','和时间对应的数据格式'),'想要的格式')

如:select from_unixtime(unix_timestamp('20160816','yyyyMMdd'),'yyyy-MM-dd HH:mm:ss')   --2016-08-16 00:00:00

       select from_unixtime(unix_timestamp('2016816','yyyyMdd'))          --和上面的结果一样,默认就是这种格式

Hive中只有带横杠的时间类型才可以直接大于小于号比较

Hive时间标准化|时间格式化_第1张图片

注意:unix_timestamp前面数据的时间格式要和后面的一样。比如yyyy/MM/dd和yyyy/M/dd格式要对应上字段原本格式。后面的时分秒没有的话函数会忽略掉

解释

步骤一:unix_timestamp会得到时间戳(函数上前后格式对应)

Hive时间标准化|时间格式化_第2张图片

步骤二:from_unixtime会得到最标准带时分秒时间

Hive时间标准化|时间格式化_第3张图片

步骤三:to_date会得到标准日期,不带时分秒

 

Hive时间格式化

select from_unixtime(unix_timestamp('20160816','yyyyMMdd'),'yyyy-MM-dd')  --2016-08-16

 

你可能感兴趣的:(Hive)