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快速插入一亿测试数据
Jun 23 MySQL
MySQL 5.7常见数据类型
Jul 15 MySQL
记一次Mysql不走日期字段索引的原因小结
Oct 24 MySQL
SQL 聚合、分组和排序
Nov 11 MySQL
SQLServer RANK() 排名函数的使用
Mar 23 SQL Server
mysql中数据库覆盖导入的几种方式总结
Mar 25 MySQL
MYSQL优化之数据表碎片整理详解
Apr 03 MySQL
MySQL视图概念以及相关应用
Apr 19 MySQL
SQL Server 忘记密码以及重新添加新账号
Apr 26 SQL Server
Mysql数据库事务的脏读幻读及不可重复读详解
May 30 MySQL
MySQL串行化隔离级别(间隙锁实现)
Jun 16 MySQL
Redis唯一ID生成器的实现
Jul 07 Redis
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
php读取der格式证书乱码解决方法
2015/06/22 PHP
php通过curl添加cookie伪造登陆抓取数据的方法
2016/04/02 PHP
jQuery表单验证插件formValidator(改进版)
2012/02/03 Javascript
js replace正则表达式应用案例讲解
2013/01/17 Javascript
jQuery jcrop插件截图使用方法
2013/11/20 Javascript
JS中实现简单Formatter函数示例代码
2014/08/19 Javascript
js获取UserControl内容为拼html时提供方便
2014/11/02 Javascript
JavaScript实现获得所有兄弟节点的方法
2015/07/23 Javascript
JS实现HTML表格排序功能
2016/08/05 Javascript
js捕捉键盘事件和按键键值的方法
2016/10/10 Javascript
详解JS-- 浮点数运算处理
2016/11/28 Javascript
JavaScript实现垂直滚动条效果
2017/01/18 Javascript
javascript闭包功能与用法实例分析
2017/04/06 Javascript
基于JS实现限时抢购倒计时间表代码
2017/05/09 Javascript
jquery单击文字或图片内容放大并居中显示
2017/06/23 jQuery
浅谈angular2 组件的生命周期钩子
2017/08/12 Javascript
JS解决position:sticky的兼容性问题的方法
2017/10/17 Javascript
详解Angular2学习笔记之Html属性绑定
2018/01/03 Javascript
vue中的$emit 与$on父子组件与兄弟组件的之间通信方式
2018/05/13 Javascript
Vue中"This dependency was not found"问题的解决方法
2018/06/19 Javascript
解决LayUI数据表格复选框不居中显示的问题
2019/09/25 Javascript
javascript 高级语法之继承的基本使用方法示例
2019/11/11 Javascript
微信小程序接入腾讯云验证码的方法步骤
2020/01/07 Javascript
[03:55]2014DOTA2国际邀请赛 Fnatic经理采访赢DK在情理之中
2014/07/10 DOTA
使用Python判断IP地址合法性的方法实例
2014/03/13 Python
python爬取哈尔滨天气信息
2018/07/14 Python
Pytorch之contiguous的用法
2019/12/31 Python
PyCharm2019 安装和配置教程详解附激活码
2020/07/31 Python
如何提高SQL Server的安全性
2016/07/25 面试题
电子商务专业自我鉴定
2013/12/18 职场文书
给国外客户的邀请函
2014/01/30 职场文书
工程材料采购方案
2014/05/18 职场文书
社会公德演讲稿
2014/05/20 职场文书
优秀团员事迹材料1000字
2014/08/20 职场文书
白银帝国观后感
2015/06/17 职场文书
简历上的自我评价,该怎么写呢?
2019/06/13 职场文书