美文网首页数据蛙数据分析每周作业
hive中时间以字符串格式表达的相关计算

hive中时间以字符串格式表达的相关计算

作者: 我住永安当 | 来源:发表于2020-11-25 21:47 被阅读0次

一、步骤:

  • 字符串转变为时间戳(unix_timestamp()函数)
  • 在将时间戳转换为标准时间格式(from_unixtime()函数)
  • 最后使用计算函数进行相应的计算(add_months()函数)
select add_months(from_unixtime(unix_timestamp(create_date, 'yyyy-MM-dd'),'yyyy-MM-dd'),-12) from dim_date_df limit 5;
计算环比日期(一年前的同一天)

二、涉及到的函数:

1、unix_timestamp():

select unix_timestamp('2018-08-15 14:22:00'); 
select unix_timestamp('2018-08-15 14:22:00','yyyy-MM-dd HH:mm:ss');
select unix_timestamp('20180815 14:22:00','yyyyMMdd HH:mm:ss'); 
image.png

2、from_unixtime()

select from_unixtime(1534314120); 
select from_unixtime(1534314120,'yyyyMMdd'); 
select from_unixtime(1534314120,'yyyy-MM-dd HH:mm:ss'); 
image.png

3、add_months()

select add_months(from_unixtime(1534314120,'yyyy-MM-dd'),2);
select add_months(from_unixtime(1534314120,'yyyy-MM-dd'),-2);
image.png

三、与mysql的一点区别

1、获取系统时间

可以看到 now()函数是invalid的。

select unix_timestamp();

当然,得到的是时间戳。


image.png

2.日期(天数)增加和减少: date_add/date_sub(string startdate,int days)

在mysql中需要加上单位,表明要对年月日还是时分秒进行计算。而hive中不需要加单位,并且只能对天进行计算。

select date_add('2018-08-15',1) ;    
select date_sub('2018-08-15',1) ;    
select date_add('2018-08-15',15) ; 
select date_sub('2018-08-15',17) ; 
image.png

四、补充函数

  • 查询当前系统时间(包括毫秒数): current_timestamp;
  • 查询当月第几天: dayofmonth(current_date);
  • 月末: last_day(current_date)
  • 当月第1天: date_sub(current_date,dayofmonth(current_date)-1)
  • 下个月第1天: add_months(date_sub(current_date,dayofmonth(current_date)-1),1)

相关文章

  • hive中时间以字符串格式表达的相关计算

    一、步骤: 字符串转变为时间戳(unix_timestamp()函数) 在将时间戳转换为标准时间格式(from_u...

  • 高频的HIVE查询相关SQL

    高频用到的HIVE查询相关SQL 1 HIVE中,字段是String的时间戳转换为日期格式语句公式:select ...

  • PHP和GO的常用函数对比

    时间日期相关 获取当前时间戳 自定义时间 格式化输出时间戳 字符串格式成日期 日期计算 给定日期计算前后多少天的日...

  • HIVE小案例:计算字符串格式日期相差天数

    原文链接:HIVE小案例:计算字符串格式日期相差天数 微信公众号:机器学习养成记 问题陈述 实际应用中,我们经常用...

  • 常用方法

    时间类 时间格式化 时间计算 字符串 字符串截取 数字格式化 axios拦截器

  • hive yyyyMMdd转yyyy-MM-dd

    在hive中,我们经常需要进行日期的计算,可是,经常会出现这样一种情况,hive仓库中日期的存储格式是yyy...

  • 正则规则

    正则表达式:专门规定字符串中字符*格式规则*的表达式 何时使用:只要定义字符串格式规则,都用正则表达式 1、字符集...

  • Kafka connect HDFS

    HDFS connector允许以各种格式将Kafka topic中的数据导出到HDFS文件中,并与Hive...

  • Java基础:String类

    相关阅读 Java基础:String类 Java字符串格式化 Java基础:正则表达式 1. 概述 字符串是由多个...

  • Java字符串格式化

    相关阅读 Java基础:String类 Java字符串格式化 Java基础:正则表达式 1. 常规类型的格式化 S...

网友评论

    本文标题:hive中时间以字符串格式表达的相关计算

    本文链接:https://www.haomeiwen.com/subject/hhkoiktx.html