Hive中日期处理
1、日期函数UNIX时间戳转日期函数:from_unixtime()
| 函数 | 格式 | 返回值 | 说明 |
|---|---|---|---|
| from_unixtime | from_unixtime(bigint unixtime[, string format]) | string | 转化UNIX时间戳(从1970-01-01 00:00:00 UTC到指定时间的秒数)到当前时区的时间格式 |
hive (temp)> select from_unixtime(1323308943,'yyyyMMdd') from dual;
20111208
hive (temp)> select from_unixtime(1323308943,'yyyy-MM-dd') from dual;
2011-12-08
2、当前UNIX时间戳函数: unix_timestamp()
2.1 获取当前UNIX时间戳函数
| 函数 | 格式 | 返回值 | 说明 |
|---|---|---|---|
| unix_timestamp | unix_timestamp() | bigint | 获得当前时区的UNIX时间戳 |
hive (temp)> select unix_timestamp() from dual;
1472105939
2.2 日期转UNIX时间戳函数
| 函数 | 格式 | 返回值 | 说明 |
|---|---|---|---|
| unix_timestamp | unix_timestamp(string date) | bigint | 转换格式为"yyyy-MM-dd HH:mm:ss"的日期到UNIX时间戳。转化失败,则返回0 |
hive (temp)> select unix_timestamp('2016-08-25 13:02:03') from dual;
1472101323
2.3 指定格式日期转UNIX时间戳函数
| 函数 | 格式 | 返回值 | 说明 |
|---|---|---|---|
| unix_timestamp | unix_timestamp(string date, string pattern) | bigint | 转换格式为"yyyyMMdd HH:mm:ss"的日期到UNIX时间戳。转化失败,则返回0 |
hive (temp)> select unix_timestamp('20160825 13:02:03','yyyyMMdd HH:mm:ss') from dual;
1472101323
3、日期时间转日期函数: to_date()
| 函数 | 格式 | 返回值 | 说明 |
|---|---|---|---|
| to_date | to_date(string timestamp) | string | 返回日期时间字段中的日期部分 |
hive (temp)> select to_date('2016-12-08 10:03:01') from dual;
2016-12-08
4、日期转年函数: year()
| 函数 | 格式 | 返回值 | 说明 |
|---|---|---|---|
| year | year(string date) | int | 返回日期中的年 |
hive (temp)> select year('2016-12-08 10:03:01') from dual;
2016
hive (temp)> select year('2016-12-08') from dual;
2016
5、日期转月函数: month()
| 函数 | 格式 | 返回值 | 说明 |
|---|---|---|---|
| month | month(string date) | int | 返回日期中的月份 |
hive (temp)> select month('2016-12-08 10:03:01') from dual;
12
hive (temp)> select month('2016-11-08') from dual;
11
6、日期转天函数: day()
| 函数 | 格式 | 返回值 | 说明 |
|---|---|---|---|
| day | day(string date) | int | 返回日期中的天 |
hive (temp)> select day('2016-12-08 10:03:01') from dual;
8
hive (temp)> select day('2016-11-18') from dual;
18
7、日期转小时函数: hour()
| 函数 | 格式 | 返回值 | 说明 |
|---|---|---|---|
| hour | hour(string date) | int | 返回日期中的小时 |
hive (temp)> select hour('2016-12-08 10:03:01') from dual;
10
8、日期转分钟函数: minute()
| 函数 | 格式 | 返回值 | 说明 |
|---|---|---|---|
| minute | minute(string date) | int | 返回日期中的分钟 |
hive (temp)> select minute('2016-12-08 10:03:01') from dual;
3
9、日期转秒函数: second()
| 函数 | 格式 | 返回值 | 说明 |
|---|---|---|---|
| second | second(string date) | int | 返回日期中的秒 |
hive (temp)> select second('2016-12-08 10:03:01') from dual;
1
10、日期转周函数: weekofyear()
| 函数 | 格式 | 返回值 | 说明 |
|---|---|---|---|
| weekofyear | weekofyear(string date) | int | 返回日期在当前的周数 |
hive (temp)> select weekofyear('2016-12-08 10:03:01') from dual;
49
11、日期比较函数: datediff(string enddate, string startdate)
| 函数 | 格式 | 返回值 | 说明 |
|---|---|---|---|
| datediff | datediff(string enddate, string startdate) | int | 返回结束日期减去开始日期的天数 |
hive (temp)> select datediff('2016-12-08','2016-12-02') from dual;
6
12、日期增加函数: date_add(string startdate, int days)
| 函数 | 格式 | 返回值 | 说明 |
|---|---|---|---|
| date_add | date_add(string startdate, int days) | string | 返回开始日期startdate增加days天后的日期 |
hive (temp)> select date_add('2016-12-08',10) from dual;
2016-12-18
#当前日期为2016-08-25,在此基础上加7天
hive (temp)> select date_add(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),7) from dual;
2016-09-01
13、日期减少函数:date_sub (string startdate, int days)
| 函数 | 格式 | 返回值 | 说明 |
|---|---|---|---|
| date_sub | date_sub(string startdate, int days) | string | 返回开始日期startdate减少days天后的日期 |
hive (temp)> select date_sub('2016-12-08',10) from dual;
2016-11-28
#当前日期为2016-08-25,在此基础上减7天
hive (temp)> select date_sub(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),7) from dual;
2016-08-18
作者:一刀Q
链接:http://www.jianshu.com/p/e30395941f9c
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Hive中日期处理的更多相关文章
- Hive中日期函数总结
--Hive中日期函数总结: --1.时间戳函数 --日期转时间戳:从1970-01-01 00:00:00 UTC到指定时间的秒数 select unix_timestamp(); --获得当前时区 ...
- hive时间日期函数及典型场景应用
1.hive取得当前日期时间: 1.1) 取得当前日期: select current_date(); 1.2) 取得当前日期时间: select current_timestamp(); 1.3) ...
- hive中时间操作(二)
转:https://blog.csdn.net/qq646748739/article/details/77997276 --Hive中日期函数总结:--1.时间戳函数--日期转时间戳:从1970-0 ...
- Hive中自定义函数
Hive的自定义的函数的步骤: 1°.自定义UDF extends org.apache.hadoop.hive.ql.exec.UDF 2°.需要实现evaluate函数,evaluate函数支持重 ...
- 关于sparksql操作hive,读取本地csv文件并以parquet的形式装入hive中
说明:spark版本:2.2.0 hive版本:1.2.1 需求: 有本地csv格式的一个文件,格式为${当天日期}visit.txt,例如20180707visit.txt,现在需要将其通过spar ...
- 漫谈数据仓库之拉链表(原理、设计以及在Hive中的实现)
本文将会谈一谈在数据仓库中拉链表相关的内容,包括它的原理.设计.以及在我们大数据场景下的实现方式. 全文由下面几个部分组成: 先分享一下拉链表的用途.什么是拉链表. 通过一些小的使用场景来对拉链表做近 ...
- sqoop 从oracle导数据到hive中,date型数据时分秒截断问题
oracle数据库中Date类型倒入到hive中出现时分秒截断问题解决方案 1.问题描述: 用sqoop将oracle数据表倒入到hive中,oracle中Date型数据会出现时分秒截断问题,只保留了 ...
- hive中时间操作(一)
转:https://blog.csdn.net/u012474716/article/details/78925319/ hive中常用的时间为时间戳和日期格式之间的转换 常用的函数为: to_dat ...
- 【hive 日期函数】Hive常用日期函数整理
1.to_date:日期时间转日期函数 select to_date('2015-04-02 13:34:12');输出:2015-04-02122.from_unixtime:转化unix时间戳到当 ...
随机推荐
- .net知识点汇总
死锁的必要条件?怎么克服? 答:系统的资源不足,进程的推进的顺序不合适,资源分配不当,一个资源每次只能被一个进程使用,一个资源请求资源时,而此时这个资源已阻塞,对已获得资源不放,进程获得资源时,未使用 ...
- Shell 命令挂后台执行
使用nohup命令,结合& #!/bin/bash #挂后台执行文件 kimbo_test.sh nohup >& & 说明:0 是标准输入(STDIN),1 是标准输出 ...
- PHP XML Parser 函数
PHP XML Parser 简介 XML 函数允许您解析 XML 文档,但无法对其进行验证. XML 是一种用于标准结构化文档交换的数据格式.您可以在我们的 XML 教程 中找到更多有关 XML 的 ...
- 设计模式--组合模式C++实现
组合模式C++实现 1定义 将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性 2类图 角色分析 Component抽象构建角色 定义参加组合独享的共同方 ...
- Zookeeper在 Linux 系统的安装
安装步骤:第一步:安装 jdk第二步:把 zookeeper 的压缩包上传到 linux 系统.Alt+P 进入 SFTP ,输入 put d:\zookeeper-3.4.6.tar.gz 上传第三 ...
- 12.详解Condition的await和signal等待通知机制
1.Condition简介 任何一个java对象都天然继承于Object类,在线程间实现通信的往往会应用到Object的几个方法,比如wait(),wait(long timeout),wait(lo ...
- 变更Linux下的Java版本 alternatives
默认正常情况下,即使使用Java 1.6版本Java脚本jdk-6u31-linux-i586.bin,安装Java运行后,会出现自动升级为1.7版本状态的情况.针对某些应用程序需要基于1.6版本方可 ...
- 新添加的DOM节点如何实现动画效果
如何给新添加的DOM节点加动画效果 最近碰到项目中,在DOM节点中,添加新的 html 后 要有动画效果,一直没能很好地理解,尝试了各种方式,终于找出来了 简化版结构 代码如下 使用jq1.9以上版本 ...
- Quartz 框架 教程(中文版)2.2.x
Quartz 框架 教程(中文版)2.2.x 之第一课 开始使用Quartz框架 Quartz 框架 教程(中文版)2.2.x 之第二课 Quartz API,Jobs和Triggers简介 Quar ...
- 前端开发必备 - Emmet
介绍 Emmet (前身为 Zen Coding) 是一个能大幅度提高前端开发效率的一个工具. 基本上,大多数的文本编辑器都会允许你存储和重用一些代码块,我们称之为"片段".虽然片 ...