1/50 hive sql 日期处理函数
目录
一、获取当前时间
二、获取指定时间
三、转换时间格式
【1】to_date(string timestamp)
【2】date_format(date string timestamp,string format)
【3】from_unixtime(bigint unixtime,string format)
【4】unix_timestamp(date string timestamp,string pattern)
【5】其余格式的指定转换 regexp_replace()、from_unixtime(unix_timestamp())
【6】截取和拼接 substr()、concat()
四、计算时间函数
【1】日期加减 date_add(date,int)、add_month(date string timestamp,int)
【2】日期差值 months_between()、datediff()、
一、获取当前时间
--获取当前格式化日期字符串
select current_date()
--获取当前格式化时间字符串
select current_timestamp()
--获取当前unix数字时间戳
select unix_timestamp()
============================
|result|2022-11-242022-11-24 16:10:26 1669277426
二、获取指定时间
--year/quarter/month/day/hour/minute/second() 获取日期中的年/季度/月/日/时/分/秒
select year(current_date()) as year,quarter(current_date()) as quarter,month(current_date()) as month,day(current_date()) as day,hour(current_timestamp()) as hour,minute(current_timestamp()) as minute,second(current_timestamp()) as second
========================================
|result|
| year | quarter | month | day | hour | minute | second|
| 2022 | 4 | 11 | 24 | 16 | 3 | 42 |
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
select last_day(current_date())--返回当前日期当月的最后一天的日期,next_day(current_date(),'MO')--返回当前日期下周一的日期,例子周一(‘MO’)、下周二(‘TU’)、下周三(‘WE’)、下周四(‘TH’)、下周五(‘FR’)、下周六(‘SA’)、下周日(‘SU’),trunc(current_date(),'MM')--取当前日期月的第一天YYYY/当年的第一天MM
===================================================================================================================================================================
|result|
| c0 | c1 | c2 |
| 2022-11-30 | 2022-11-28 | 2022-11-01 |
三、转换时间格式
【1】to_date(string timestamp)
作用:将格式化日期字符串转换成日期格式 yyyy-MM-dd
返回类型:>>> date
--格式化日期字符串:yyyy-MM-dd
select to_date('2022-11-24') --日期字符串,to_date('2022-11-24 16:18:21') --时间戳字符串
==========================================================
|result|
| c0 | c1 |
| 2022-11-24 | 2022-11-24 |
【2】date_format(date string timestamp,string format)
作用:将格式化日期字符串转换成指定的格式
返回类型: >>> string
select date_format('2022-11-24','yyyy-MM-dd HH:mm:ss') --yyyy-MM-dd HH:mm:ss,date_format('2022-11-24 16:18:21','yyyy-MM-dd') --yyyy-MM-dd,date_format('2022-11-24 16:18:21','yyyyMMdd') --yyyyMMdd,date_format('2022-11-24','yyyy/MM/dd') --yyyy/MM/dd
===============================================================================
|result|
| c0 | c1 | c2 | c3 |
| 2022-11-24 00:00:00| 2022-11-24 | 20221124 | 2022/11/24 |
【3】from_unixtime(bigint unixtime,string format)
作用:将 unix 时间戳转换成指定的格式
返回类型: >>> string
select from_unixtime(1669277426) --yyyy-MM-dd HH:mm:ss,from_unixtime(1669277426,'yyyy-MM-dd') --yyyy-MM-dd,from_unixtime(1669277426,'yyyyMMdd') --yyyyMMdd,from_unixtime(1669277426,'yyyy/MM/dd') --yyyy/MM/dd,from_unixtime(cast(1669277426000/1000 as int))--unixtime为13位的,需先转成10位
===================================================================================
|result|
| c0 | c1 | c2 | c3 | c4 |
| 2022-11-24 08:10:26| 2022-11-24 | 20221124 | 2022/11/24 |2022-11-24 08:10:26|
【4】unix_timestamp(date string timestamp,string pattern)
作用:将时间转换成当前时区unix时间戳
注:第一个参数是字符串的时间,第二个 pattern 匹配第一个参数时间字符串格式,识别时间
只传入第一个参数,格式必须是‘yyyy-mm-dd HH:mm:ss’ ,否则返回null
返回类型: >>> bigint
select unix_timestamp('2022-11-24 08:10:26')--pattern默认是yyyy-mm-dd HH:mm:ss,unix_timestamp('2022-11-24','yyyy-MM-dd') --yyyy-MM-dd,unix_timestamp('2022-11-24 08:10:26','yyyy-MM-dd HH:mm:ss'),unix_timestamp('2022-11-24','yyyyMMdd')--yyyyMMdd
=================================================================================
|result|
| c0 | c1 | c2 | c3 |
| 1669277426 | 1669248000 | 1669277426 | 1635724800 |
【5】其余格式的指定转换 regexp_replace()、from_unixtime(unix_timestamp())
select regexp_replace('2022-11-24','-','/')--将-替换成/ yyyy/MM/dd,regexp_replace('2022/11/24','/','')--yyyyMMdd,from_unixtime(unix_timestamp('20221124','yyyyMMdd'),'yyyy-MM-dd')--yyyy-MM-dd,from_unixtime(unix_timestamp('2022/11/24','yyyy/MM/dd'),'yyyy-MM-dd')--yyyy-MM-dd
=============================================================================================
|result|
| c0 | c1 | c2 | c3 |
| 2022/11/24 | 20221124 | 2022-11-24 | 2022-11-24 |
【6】截取和拼接 substr()、concat()
select concat(substr('20221124',1,4),'-',substr('20221124',5,2)),substr('2022-11-24 08:10:26',1,10)
====================================================================
|result|
| c0 | c1 |
| 2022-11 | 2022-11-24 |
四、计算时间函数
【1】日期加减 date_add(date,int)、add_month(date string timestamp,int)
返回类型: >>> date
select date_add('2022-11-24',1)--必须满足yyyy-MM-dd格式 ,date_add('2022-11-24',-1)--等同于date_sub,add_months('2022-11-24 08:10:26',1),add_months('2022-11-24',-1)
=============================================================
|result|
| c0 | c1 | c2 | c3 |
| 2022/11/25 | 2022-11-23 | 2022-12-24 | 2022-10-24 |
【2】日期差值 months_between()、datediff()、
注:日期是前减后
select months_between('2022-11-24','2022-10-24')--日期相同,比较月差值,months_between('2022-11-24','2022-10-25')--日期不同,比较月差值、小数,months_between(concat(substr('2022-11-24',1,7),'-01'),concat(substr('2022-10-27',1,7),'-01'))--日期不同,比较月差值,整数
==================================================================================================================================
|result|
| c0 | c1 | c2 |
| 1 | 0.96774194 | 1 |
------------------------------------------------------------------------------------------------------------------------------------
select datediff(current_timestamp(),'2022-10-24'),datediff(current_date() ,'2022-10-25'),datediff('2022-11-24','2022-11-25')
========================================================
|result|
| c0 | c1 | c2 |
| 32 | 31 | -1 |
1/50 hive sql 日期处理函数相关推荐
- mysql2000日期加减,SQL日期处理函数DATEADD和DATEDIFF详解
SQL Server数据库中,DATETIME和SMALLDATETIME的值是存储为整数的.虽然如此,SQL Server数据库并不因此支持对这两种类型的值做数学运算. 不过,我们一定会有给日期或时 ...
- sql 日期时间函数+格式转换
<日期时间函数> (可参考下列表格) 转换函数 to_date() 作用将字符类型按一定格式转化为日期类型: 具体用法:to_date('2004-11-27','yyyy-mm-dd') ...
- oracle sql中月份加1,sql日期有关函数以及oracle日期有关函数
sql日期函数 -- DATEADD -- 在向指定日期加上一段时间的基础上,返回新的 datetime 值. -- DATEADD ( datepart , number, date ) -- 日期 ...
- Hive SQL操作与函数自定义(二)
9 Operators and UDFs 9.1 内置运算符 9.1.1 关系运算符 操作符 运算对象的类型 描述 A <=> B ALL 都是NULL时,返回TRUE,有一为NULL时, ...
- SQL 日期转换函数
SqlServer日期(convert函数,getdate函数) 函数GETDATE()的返回值在显示时只显示到秒.实际上,SQL Sever内部时间可以精确到毫秒级(确切地说,可以精确到3.33毫秒 ...
- Oracle PL/SQL——日期时间函数的运用
建表.数据插入 CREATE TABLE TEST.STU2(SNO VARCHAR2(10) PRIMARY KEY,SNAME VARCHAR2(10),SGENTLE VARCHAR2(2),S ...
- Apache Hive DML语句与函数使用
文章目录 Apache Hive DML语句与函数使用 一.Hive SQL DML语法之**加载数据** (1). 掌握Hive SQL Load加载数据语句 什么是本地? (2).掌握Hive S ...
- 【Hive SQL】常用日期函数汇总
目录 时间戳和日期相互转换函数: unix_timestamp :日期格式转换成时间戳 from_unixtime :时间戳转换成日期格式函数 current_timestamp: 获取当前的时间戳 ...
- Hive Sql 大全(hive函数,hive表)
Hive Sql 大全 本节基本涵盖了Hive日常使用的所有SQL,因为SQL太多,所以将SQL进行了如下分类: 一.DDL语句(数据定义语句): 对数据库的操作:包含创建.修改数据库 对数据表的操作 ...
最新文章
- 笔记-多项式相关操作
- Myeclipse学习总结(10)——MyEclipse2014导入项目时The project was not built since its build问题...
- opencv画线和文字
- 某中介无线组网及***接入应用案例
- android多线程中更新ui,Android 在子线程中更新UI
- Application.messagebox对话框样式
- python同构数_用c语言求1到1000的同构数_后端开发
- 什么是CAD?制图CAD要怎么开始学习?
- POJ——多项式加法(WA)
- 如何显示密件抄送人员地址_什么是密件抄送,以及为什么不使用它会成为一个可怕的人...
- 家居风水大全[ZT:http://sssyyyccc.blog.hexun.com/2641355_d.html]
- 词性、句法分析、依存关系的符号解释
- (转)iOS应用架构谈 本地持久化方案及动态部署
- 前端开发者如何与UI设计师沟通
- html表单日期选择器ppt,DatePicker 日期选择框
- 公路水运工程安全电子光盘_公路水运工程施工安全标准化.pdf
- 大头贴制作大师 6.9.5 下载
- 北风吹战鼓雷(实验平台的搭建)1
- 华为面试题(西安研究所)
- 工程伦理第十章习题答案
热门文章
- 【C++】 strcasecmp函数
- Fabulous — fabulous v0.1.5 documentation
- 在电脑插上电源充电情况下开机 自动进入bios setup utility
- 自然语言处理前沿研究之细粒度情感分析
- 树莓派 小屏幕_小技巧:树莓派花式截屏
- 一文学会随机森林在sklearn中的实现
- 长虹电视新机测试什么软件,长虹CHiQ电视系统首次迭代详解
- python 类的执行中保部存值_Python DLL 读写Ntag21x标签
- 华为g9android,华为G9青春版有几个版本?双4G与全网通版区别【详解】
- Serverless 架构演进与实践