Hive常用日期格式转换语法


Posted in 数据库 onJune 25, 2022

获取当前时间

  • 获取当前时间戳
select unix_timestamp()
  • 把时间戳转为正常的日期
select from_unixtime(unix_timestamp(),'yyyy-MM-dd HH:mm:ss')
select from_unixtime(unix_timestamp(),'yyyy-MM-dd')
  • 业务中有时存放的是包含毫秒的整数,需要先转换为秒
select from_unixtime(cast(create_time/1000 as bigint),'yyyyMMdd') as dt
  • 返回当天三种方式
SELECT CURRENT_DATE;   --2017-06-15
select current_date();   -- 2021-10-22

SELECT current_timestamp; --返回时分秒
--2018-06-18 10:37:53.278
SELECT from_unixtime(unix_timestamp());
--2017-06-15 19:55:04

日期格式转换

  • 日期格式转换 yyyyMMdd—>yyyy-MM-dd
select from_unixtime(unix_timestamp('20211022','yyyyMMdd'),"yyyy-MM-dd");
2021-10-22
  • 固定日期转换成时间戳
select unix_timestamp('2016-08-16','yyyy-MM-dd') --1471276800
select unix_timestamp('20160816','yyyyMMdd') --1471276800
select unix_timestamp('2016-08-16T10:02:41Z', "yyyy-MM-dd'T'HH:mm:ss'Z'") --1471312961
16/Mar/2017:12:25:01 +0800 转成正常格式(yyyy-MM-dd hh:mm:ss)
select from_unixtime(to_unix_timestamp('16/Mar/2017:12:25:01 +0800', 'dd/MMM/yyy:HH:mm:ss Z'))
  • 时间戳转换程固定日期
select from_unixtime(1471276800,'yyyy-MM-dd') --2016-08-16
select from_unixtime(1471276800,'yyyyMMdd') --20160816
select from_unixtime(1471312961) --    2016-08-16 10:02:41
select from_unixtime( unix_timestamp('20160816','yyyyMMdd'),'yyyy-MM-dd')  --2016-08-16
select date_format('2016-08-16','yyyyMMdd') --20160816
  • 字符串强制转换,获取日期
select to_date('2016-08-16 10:03:01') --2016-08-16
类似sql 中的date
  • 截取日期部分
select substr('2021-10-22 17:34:56',1,10)
2021-10-22

select date_format('2021-10-22 17:34:56','yyyy-MM-dd')
2021-10-22

返回日期中的年,月,日,时,分,秒,当前的周数

  • 返回日期中的年
select year('2016-08-16 10:03:01') --2016
  • 返回日期中的月
select month('2016-08-16 10:03:01') --8
  • 返回日期中的日
select day('2016-08-16 10:03:01') --16
  • 返回日期中的时
select hour('2016-08-16 10:03:01') --10
  • 返回日期中的分
select minute('2016-08-16 10:03:01') --3
  • 返回日期中的秒
select second('2016-08-16 10:03:01') --1
  • 返回日期在当前的周数
select weekofyear('2016-08-16 10:03:01') --33

计算日期差值

  • 返回结束日期减去开始日期的天数
select datediff('2016-08-16','2016-08-11')
  • 返回开始日期startdate增加days天后的日期
select date_add('2016-08-16',10)
  • 返回开始日期startdate减少days天后的日期
select date_sub('2016-08-16',10)

前一日/昨日
select date_sub(current_date(),1);
2021-10-21

最近一个月/30天
select date_sub(current_date(),30);
2021-09-22
  • 前一日12点/昨日12点
select concat(date_format(date_sub(current_date(),1),'yyyy-MM-dd'),' ','12');
2021-10-21 12

返回当月或当年的第一天

  • 返回当月的第一天
select trunc('2016-08-16','MM') --2016-08-01

select date_format(to_date(trunc(current_date(),'MM')),"yyyy-MM-dd");
2021-10-01
  • 返回当年的第一天
select trunc('2016-08-16','YEAR') --2016-01-01

参考汇总

固定日期转换成时间戳
select unix_timestamp('2016-08-16','yyyy-MM-dd') --1471276800
select unix_timestamp('20160816','yyyyMMdd') --1471276800
select unix_timestamp('2016-08-16T10:02:41Z', "yyyy-MM-dd'T'HH:mm:ss'Z'") --1471312961
16/Mar/2017:12:25:01 +0800 转成正常格式(yyyy-MM-dd hh:mm:ss)
select from_unixtime(to_unix_timestamp('16/Mar/2017:12:25:01 +0800', 'dd/MMM/yyy:HH:mm:ss Z'))
时间戳转换程固定日期
select from_unixtime(1471276800,'yyyy-MM-dd') --2016-08-16
select from_unixtime(1471276800,'yyyyMMdd') --20160816
select from_unixtime(1471312961) --    2016-08-16 10:02:41
select from_unixtime( unix_timestamp('20160816','yyyyMMdd'),'yyyy-MM-dd')  --2016-08-16
select date_format('2016-08-16','yyyyMMdd') --20160816
返回日期时间字段中的日期部分
select to_date('2016-08-16 10:03:01') --2016-08-16
类似sql 中的date
取当前时间
select from_unixtime(unix_timestamp(),'yyyy-MM-dd HH:mm:ss')
select from_unixtime(unix_timestamp(),'yyyy-MM-dd') 
返回日期中的年
select year('2016-08-16 10:03:01') --2016
返回日期中的月
select month('2016-08-16 10:03:01') --8
返回日期中的日
select day('2016-08-16 10:03:01') --16
返回日期中的时
select hour('2016-08-16 10:03:01') --10
返回日期中的分
select minute('2016-08-16 10:03:01') --3
返回日期中的秒
select second('2016-08-16 10:03:01') --1
返回日期在当前的周数
select weekofyear('2016-08-16 10:03:01') --33
返回结束日期减去开始日期的天数
select datediff('2016-08-16','2016-08-11') 
返回开始日期startdate增加days天后的日期
select date_add('2016-08-16',10)
返回开始日期startdate减少days天后的日期
select date_sub('2016-08-16',10)
返回当天三种方式
SELECT CURRENT_DATE;
--2017-06-15
SELECT CURRENT_TIMESTAMP;--返回时分秒
--2017-06-15 19:54:44
SELECT from_unixtime(unix_timestamp());
--2017-06-15 19:55:04
返回当前时间戳
Select current_timestamp--2018-06-18 10:37:53.278
返回当月的第一天
select trunc('2016-08-16','MM') --2016-08-01
返回当年的第一天
select trunc('2016-08-16','YEAR') --2016-01-01

 参考链接:

以上就是Hive常用日期格式转换语法的详细内容,更多关于Hive日期格式转换的资料请关注三水点靠木其它相关文章!


Tags in this post...

数据库 相关文章推荐
mysql多表查询-笔记七
Apr 05 MySQL
SQL SERVER中常用日期函数的具体使用
Apr 08 SQL Server
带你学习MySQL执行计划
May 31 MySQL
基于Redis结合SpringBoot的秒杀案例详解
Oct 05 Redis
一文带你探究MySQL中的NULL
Nov 11 MySQL
SQL注入详解及防范方法
Dec 06 MySQL
mysql自增长id用完了该怎么办
Feb 12 MySQL
一文弄懂MySQL中redo log与binlog的区别
Feb 15 MySQL
MongoDB误操作后使用oplog恢复数据
Apr 11 MongoDB
为什么MySQL8新特性会修改自增主键属性
Apr 18 MySQL
WINDOWS下安装mysql 8.x 的方法图文教程
Apr 19 MySQL
mysql 排序失效
May 20 MySQL
MySQL数据库配置信息查看与修改方法详解
Jun 25 #MySQL
SQL语句中EXISTS的详细用法大全
Jun 25 #MySQL
Oracle数据库事务的开启与结束详解
Jun 25 #Oracle
MySQL约束(创建表时的各种条件说明)
Jun 21 #MySQL
MySQL数据库实验实现简单数据库应用系统设计
Jun 21 #MySQL
MySQL数据库表约束讲解
Jun 21 #MySQL
MySQL数据库实验之 触发器和存储过程
Jun 21 #MySQL
You might like
ThinkPHP3.2.2的插件控制器功能简述
2014/07/09 PHP
php实现webservice实例
2014/11/06 PHP
laravel 5 实现模板主题功能
2015/03/02 PHP
PHP获取POST数据的几种方法汇总
2015/03/03 PHP
小议javascript 设计模式 推荐
2009/10/28 Javascript
ASP.NET中AJAX 调用实例代码
2012/05/03 Javascript
文本框input聚焦失焦样式实现代码
2012/10/12 Javascript
仿新浪微博登陆邮箱提示效果的js代码
2013/08/02 Javascript
JS获取屏幕,浏览器窗口大小,网页高度宽度(实现代码)
2013/12/17 Javascript
理解javascript模块化
2016/03/28 Javascript
利用JS实现页面删除并重新排序功能
2016/12/09 Javascript
Bootstrap源码解读表单(2)
2016/12/22 Javascript
vue+echarts实现可拖动节点的折线图(支持拖动方向和上下限的设置)
2019/04/12 Javascript
jQuery-Citys省市区三级菜单联动插件使用详解
2019/07/26 jQuery
[01:01:43]EG vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
python实现上传样本到virustotal并查询扫描信息的方法
2014/10/05 Python
python检测远程udp端口是否打开的方法
2015/03/14 Python
Python实现把json格式转换成文本或sql文件
2015/07/10 Python
python中的格式化输出用法总结
2016/07/28 Python
python 3.5实现检测路由器流量并写入txt的方法实例
2017/12/17 Python
Python使用百度api做人脸对比的方法
2019/08/28 Python
Python求解正态分布置信区间教程
2019/11/20 Python
用Python 执行cmd命令
2020/12/18 Python
美国女孩服装购物网站:Justice
2017/03/04 全球购物
Rosetta Stone官方网站:语言学习
2019/01/05 全球购物
英国Flybe航空官网:欧洲最大的独立支线廉价航空公司
2019/07/15 全球购物
adidas菲律宾官网:adidas PH
2020/02/07 全球购物
BSTN意大利:德国街头和运动文化高品质商店
2020/12/22 全球购物
linux面试题参考答案(9)
2015/01/07 面试题
建筑经济管理专业求职信分享
2014/01/06 职场文书
银行存款证明样本
2014/01/17 职场文书
四风对照检查材料思想汇报
2014/09/20 职场文书
营销与策划实训报告
2014/11/05 职场文书
婚宴邀请函
2015/01/30 职场文书
党员证明信
2015/06/19 职场文书
2015年主婚人婚礼致辞
2015/07/28 职场文书