前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hive函数-1-时间日期相关

Hive函数-1-时间日期相关

原创
作者头像
皮大大
修改2020-11-19 14:32:33
1.3K0
修改2020-11-19 14:32:33
举报
文章被收录于专栏:机器学习/数据可视化
Hive内置函数

hive中内置了很多日期、数值、集合、聚合等内置函数,本文中主要介绍的常见的日期和时间相关的函数。

date(转成date类型)

用来指定某一天具体的日期,将数据转成date类型

代码语言:txt
复制
select date('2020-11-11')
date_add(指定日期后n天)

指定日期n天之后:date_add,具体用法为两个参数

  • date:以某天为基准
  • int:多少天之后
代码语言:txt
复制
select date_add(date('2020-10-11'), 20)     -- 返回结果:2020-10-31
date_sub(指定日期前n天)

返回指定日期n天之前的日期,参数是date类型和int类型,返回的是date类型

代码语言:txt
复制
select date_sub(date('2020-11-11'), 10)    -- 返回:2020-11-01
date_month(指定日期n月后)

指定日期n月之后:date_add,具体用法为两个参数

  • date:以某天为基准
  • int:多少月之后
代码语言:txt
复制
select date_add(date('2020-10-11'), 2)     -- 返回结果:2020-12-11
datediff(日期间隔)

计算两个日期之间的相差天数,首先需要将两个日期通过date函数转成date类型,函数返回的是int

代码语言:txt
复制
select datadiff(date('2020-11-17'), date('2020-11-11'))   -- 返回的结果是6  两个天数之间相差6天
dateofmonth(日期的月份)

返回某个具体日期中的月份数据,首先还是要将日期转成date类型

代码语言:txt
复制
select dateofmonth(date('2020-11-11'))    -- 返回的是11
weekofyear(周)

返回的是日期在一年中属于第几周,参数必须是date类型,返回值是int

代码语言:txt
复制
select weekofyear(date('2020-01-01'))   -- 返回:1
unix_timestamp(日期转成时间戳)

将日期转成unix时间戳,参数是date类型,返回值是bigint

代码语言:txt
复制
select unix_timestamp(date('2020-11-11'))   -- 返回:1605024000
to_date(时间戳转成日期)

该函数的作用是返回时间戳中的日期部分,参数是timestamp类型或者date类型,返回值是string

代码语言:txt
复制
select to_date(cast('2020-11-11 12:00:00' as timestamp))   -- 时间戳作为参数

select to_date(date('2020-11-11'))  -- date类型作为参数

-- 返回结果:2020-11-1
year(返回年份)

返回日期或时间戳的年份,参数是date类型或者timestamp类型,返回值是int类型

代码语言:txt
复制
select year(date('2020-11-11'))   -- 返回的是2020
quarter(返回季度)

返回的是时间在年份中的季度,参数类型是date类型或者timestamp类型

代码语言:txt
复制
select quarter(date('2020-09-20'))  -- 返回:3    9月份是第三季度
month(返回月份)

返回的是时间在年份中的月份,参数类型是date类型或者timestamp类型,返回值是int类型

代码语言:txt
复制
select month(date('2020-09-20'))  -- 返回:9
day(返回具体某天)

返回的是时间在年份中的具体某天,参数类型是date类型或者timestamp类型,返回值是int类型

代码语言:txt
复制
select day(date('2020-09-20'))  -- 返回:20
hour+minute+second(返回小时+分钟+秒)

返回具体的小时、分钟、秒参数类型是时间戳类型,返回值是int类型

代码语言:txt
复制
select hour(timestamp('2020-11-17 12:11:36'))   -- 分别返回时分秒: 12  11  36 
current_date(当前日期)

直接返回的是当前的日期

代码语言:txt
复制
select current_date;   -- 2020-11-11
current_timestamp(当前时间)
代码语言:txt
复制
select current_timestamp;     -- 2020-11-11  20:09:11

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Hive内置函数
  • date(转成date类型)
  • date_add(指定日期后n天)
  • date_sub(指定日期前n天)
  • date_month(指定日期n月后)
  • datediff(日期间隔)
  • dateofmonth(日期的月份)
  • weekofyear(周)
  • unix_timestamp(日期转成时间戳)
  • to_date(时间戳转成日期)
  • year(返回年份)
  • quarter(返回季度)
  • month(返回月份)
  • day(返回具体某天)
  • hour+minute+second(返回小时+分钟+秒)
  • current_date(当前日期)
  • current_timestamp(当前时间)
相关产品与服务
大数据处理套件 TBDS
腾讯大数据处理套件(Tencent Big Data Suite,TBDS)依托腾讯多年海量数据处理经验,基于云原生技术和泛 Hadoop 生态开源技术提供的可靠、安全、易用的大数据处理平台。 TBDS可在公有云、私有云、非云化环境,根据不同数据处理需求组合合适的存算分析组件,包括 Hive、Spark、HBase、Flink、Presto、Iceberg、Elasticsearch、StarRocks 等,以快速构建企业级数据湖仓。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档