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 03 MySQL
k8s部署redis cluster集群的实现
Jun 24 Redis
Mysql binlog日志文件过大的解决
Oct 05 MySQL
面试提问mysql一张表到底能存多少数据
Mar 13 MySQL
MySQL学习之基础操作总结
Mar 19 MySQL
MySQL实战记录之如何快速定位慢SQL
Mar 23 MySQL
Redis分布式锁的7种实现
Apr 01 Redis
MySql重置root密码 --skip-grant-tables
Apr 11 MySQL
MYSQL常用函数介绍
May 05 MySQL
MYSQL如何查看操作日志详解
May 30 MySQL
Redis入门基础常用操作命令整理
Jun 01 Redis
MySQL常用慢查询分析工具详解
Aug 14 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 setcookie指定domain参数后,在IE下设置cookie失效的解决方法
2011/09/09 PHP
php遍历所有文件及文件夹的方法深入解析
2013/06/08 PHP
用 Composer构建自己的 PHP 框架之设计 MVC
2014/10/30 PHP
php返回相对时间(如:20分钟前,3天前)的方法
2015/04/14 PHP
PHP常用的三种设计模式汇总
2016/08/28 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
2017/09/22 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
2019/11/23 PHP
多浏览器兼容的获取元素和鼠标的位置的js代码
2009/12/15 Javascript
jQuery EasyUI API 中文文档 - MenuButton菜单按钮使用介绍
2011/10/06 Javascript
js实现字符串的16进制编码不加密
2014/04/25 Javascript
更快的异步执行(setTimeout多浏览器)
2014/08/12 Javascript
node.js中的fs.symlink方法使用说明
2014/12/15 Javascript
JavaScript电子时钟倒计时第二款
2016/01/10 Javascript
node.js cookie-parser之parser.js
2016/06/06 Javascript
Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法
2016/06/23 Javascript
javascript 小数乘法结果错误的处理方法
2016/07/28 Javascript
javascript表单控件实例讲解
2016/09/13 Javascript
JavaScript如何获取到导航条中HTTP信息
2017/10/10 Javascript
详解js访问对象的属性和方法
2018/10/25 Javascript
微信小程序利用Canvas绘制图片和竖排文字详解
2019/06/25 Javascript
Vue.js实现大屏数字滚动翻转效果
2019/11/29 Javascript
nuxt配置通过指定IP和端口访问的实现
2020/01/08 Javascript
python根据日期返回星期几的方法
2015/07/06 Python
python矩阵/字典实现最短路径算法
2019/01/17 Python
python+pyqt5实现24点小游戏
2019/01/24 Python
Python 异常的捕获、异常的传递与主动抛出异常操作示例
2019/09/23 Python
使用PyTorch训练一个图像分类器实例
2020/01/08 Python
Python 实现自动获取种子磁力链接方式
2020/01/16 Python
python 实现多维数组(array)排序
2020/02/28 Python
Python实现删除某列中含有空值的行的示例代码
2020/07/20 Python
使用OpenCV实现人脸图像卡通化的示例代码
2021/01/15 Python
致标枪运动员加油稿
2014/02/15 职场文书
高一课前三分钟演讲稿
2014/09/13 职场文书
2015年超市工作总结范文
2015/05/26 职场文书
班级联欢会主持词
2015/07/03 职场文书
Mysql排查分析慢sql之explain实战案例
2022/04/19 MySQL