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 kill不掉线程的原因
May 07 MySQL
深入浅析Redis 集群伸缩原理
May 15 Redis
mysql联合索引的使用规则
Jun 23 MySQL
Redis Cluster集群动态扩容的实现
Jul 15 Redis
常用的MongoDB查询语句的示例代码
Jul 25 MongoDB
使用Oracle命令进行数据库备份与还原
Dec 06 Oracle
Mysql Innodb存储引擎之索引与算法
Feb 15 MySQL
MySQL数据库完全卸载的方法
Mar 03 MySQL
redis击穿 雪崩 穿透超详细解决方案梳理
Mar 17 Redis
SQL试题 使用窗口函数选出连续3天登录的用户
Apr 24 Oracle
Mysql中@和@@符号的详细使用指南
Jun 05 MySQL
DQL数据查询语句使用示例
Dec 24 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图片上传程序
2008/03/27 PHP
php更改目录及子目录下所有的文件后缀的代码
2010/09/24 PHP
php将字符串转化成date存入数据库的两种方式
2014/04/28 PHP
PHP-CGI远程代码执行漏洞分析与防范
2017/05/07 PHP
PHP配置ZendOpcache插件加速
2019/02/14 PHP
ThinkPHP5.0框架使用build 自动生成模块操作示例
2019/04/11 PHP
PhpStorm+xdebug+postman调试技巧分享
2020/09/15 PHP
js之WEB开发调试利器:Firebug 下载
2007/01/13 Javascript
js中匿名函数的N种写法
2010/09/08 Javascript
借助FileReader实现将文件编码为Base64后通过AJAX上传
2015/12/24 Javascript
Web前端新人笔记之jquery入门心得(新手必看)
2016/05/17 Javascript
详解Vue 动态添加模板的几种方法
2017/04/25 Javascript
Vue.js进行查询操作的实例详解
2017/08/25 Javascript
vue组件父与子通信详解(一)
2017/11/07 Javascript
gulp安装以及打包合并的方法教程
2017/11/19 Javascript
解决vue+webpack打包路径的问题
2018/03/06 Javascript
详解Vue 动态组件与全局事件绑定总结
2018/11/11 Javascript
javascript验证form表单数据的案例详解
2019/03/25 Javascript
Webpack中loader打包各种文件的方法实例
2019/09/03 Javascript
JS 获取文件后缀,判断文件类型(比如是否为图片格式)
2020/05/09 Javascript
django Serializer序列化使用方法详解
2018/10/16 Python
Golang GBK转UTF-8的例子
2019/08/26 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
2019/09/28 Python
python 计算方位角实例(根据两点的坐标计算)
2020/01/17 Python
CSS3实现网站商品展示效果图
2020/01/18 HTML / CSS
法国时尚童装网站:Melijoe
2016/08/10 全球购物
成功的酒店创业计划书
2013/12/27 职场文书
生日寿宴答谢词
2014/01/19 职场文书
会计专业毕业自荐书范文
2014/02/08 职场文书
《蜗牛》教学反思
2014/02/18 职场文书
人事科岗位职责范本
2014/03/02 职场文书
博士生求职信
2014/07/06 职场文书
党的群众路线教育实践活动个人对照检查材料
2014/09/22 职场文书
质量保证书格式模板
2015/02/27 职场文书
python中数组和列表的简单实例
2022/03/25 Python
SpringBoot使用ip2region获取地理位置信息的方法
2022/06/21 Java/Android