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
ORACLE数据库对long类型字段进行模糊匹配的解决思路
Apr 07 Oracle
浅谈redis缓存在项目中的使用
May 20 Redis
my.ini优化mysql数据库性能的十个参数(推荐)
May 26 MySQL
MySQL5.7并行复制原理及实现
Jun 03 MySQL
mysql连接查询中and与where的区别浅析
Jul 01 MySQL
Redis做数据持久化的解决方案及底层原理
Jul 15 Redis
Lakehouse数据湖并发控制陷阱分析
Mar 31 Oracle
Redis实战高并发之扣减库存项目
Apr 14 Redis
Mysql 8.x 创建用户以及授予权限的操作记录
Apr 18 MySQL
解决Oracle数据库用户密码过期
May 11 Oracle
MySql数据库 查询时间序列间隔
May 11 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
如何使用PHP获取网络上文件
2006/10/09 PHP
php设计模式 Command(命令模式)
2011/06/26 PHP
PHP实现的简单分页类及用法示例
2016/05/06 PHP
ThinkPHP使用Ueditor的方法详解
2016/05/20 PHP
CI框架教程之优化验证码机制详解【验证码辅助函数】
2019/04/16 PHP
JS版网站风格切换实例代码
2008/10/06 Javascript
细品javascript 寻址,闭包,对象模型和相关问题
2009/04/27 Javascript
使用js检测浏览器的实现代码
2013/05/14 Javascript
js之事件冒泡和事件捕获详细介绍
2013/10/28 Javascript
javascript从右边截取指定字符串的三种实现方法
2013/11/29 Javascript
轻松创建nodejs服务器(4):路由
2014/12/18 NodeJs
javascript实现简单的二级联动
2015/03/19 Javascript
jQuery生成假加载动画效果
2016/12/01 Javascript
js实现键盘自动打字效果
2016/12/23 Javascript
Vue基础配置讲解
2019/11/29 Javascript
原生js+canvas实现验证码
2020/11/29 Javascript
[01:28]2014DOTA2国际邀请赛中国区预选赛四大豪门直升机抵达会场
2014/05/24 DOTA
Python使用tablib生成excel文件的简单实现方法
2016/03/16 Python
Python实现字典去除重复的方法示例
2017/07/31 Python
tornado 多进程模式解析
2018/01/15 Python
Pandas Shift函数的基础入门学习笔记
2018/11/16 Python
如何利用Pyecharts可视化微信好友
2019/07/04 Python
python turtle 绘制太极图的实例
2019/12/18 Python
django 读取图片到页面实例
2020/03/27 Python
基于python实现matlab filter函数过程详解
2020/06/08 Python
html5使用canvas实现跟随光标跳动的火焰效果
2014/01/07 HTML / CSS
美国鲍勃商店:Bob’s Stores
2018/07/22 全球购物
澳大利亚最大的百货公司:Myer
2018/12/21 全球购物
上海期货面试题
2014/01/31 面试题
企业文化建设实施方案
2014/03/22 职场文书
财务情况说明书范文
2014/05/06 职场文书
违反学校规则制度检讨书
2015/01/01 职场文书
感恩节寄语2015
2015/03/24 职场文书
2015年社区矫正工作总结
2015/04/21 职场文书
幼儿园圣诞节活动总结
2015/05/06 职场文书
MySQL创建管理LIST分区
2022/04/13 MySQL