数据库时间获取与计算

简介: 数据库时间获取与计算
hive时间处理与MySQL、Oracle数据库,存在一定的差异,当前时间的获取,以及时间的加减,下面会提供详细的计算处理方式

一、hive时间获取与计算

1,获取当前时间

语法:CURRENT_date()
返回值:年月日

2,获取当前时间戳

(1)unix_timestamp()

语法: unix_timestamp() 
返回值: bigint 
说明: 获得当前时区的UNIX时间戳 

需要将bigint的时间戳转换为时间类型的时间戳
语法: from_unixtime(bigint unixtime[, string format])
返回值:年月日时分秒
举例:select from_unixtime(unix_timestamp() ,'yyyy-MM-dd HH:mm:ss')

(2)CURRENT_TIMESTAMP()

语法:CURRENT_TIMESTAMP()
返回值:年月日时分秒

3,取得昨天日期

select date_add(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),-1);
select date_sub(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),1);
select date_format(date_add(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),-1);

4,取得明天日期

select date_add(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),1);
select date_sub(from_unixtime(unix_timestamp(),'yyyy-MM-dd'),-1);

5,hive时间小时加减

思路:常用是转成时间戳再加减,
格式:select from_unixtime(unix_timestamp(时间字段)+小时数*60*60,'yyyy-MM-dd HH:mm:ss')
示例:select from_unixtime(unix_timestamp(CURRENT_TIMESTAMP())+12*60*60,'yyyy-MM-dd HH:mm:ss')
释义:查询当前时间+12小时的时间结果

二、Oracle时间获取与计算

1,时间加法

--加1秒
select sysdate,to_char(sysdate+1/24/60/60,'yyyy-mm-dd HH24:MI:SS') from dual; 
--加1分钟
select sysdate,to_char(sysdate+1/24/60,'yyyy-mm-dd HH24:MI:SS') from dual; 
--加1小时
select sysdate,to_char(sysdate+1/24,'yyyy-mm-dd HH24:MI:SS') from dual; 
--加1天
select sysdate,to_char(sysdate+1,'yyyy-mm-dd HH24:MI:SS') from dual; 
--加1星期
select sysdate,to_char(sysdate+7,'yyyy-mm-dd HH24:MI:SS') from dual; 
--加1月
select sysdate,add_months(sysdate,1) from dual; 
--加1年
select sysdate,add_months(sysdate,12) from dual; 

2,时间减法

方法与时间加法一致,只是将数字修改为负数即可
--减1秒
select sysdate,to_char(sysdate-1/24/60/60,'yyyy-mm-dd HH24:MI:SS') from dual; 
--减1分钟
select sysdate,to_char(sysdate-1/24/60,'yyyy-mm-dd HH24:MI:SS') from dual;    
--减1小时
select sysdate,to_char(sysdate-1/24,'yyyy-mm-dd HH24:MI:SS') from dual;   
--减1天    
select sysdate,to_char(sysdate-1,'yyyy-mm-dd HH24:MI:SS') from dual;    
--减1星期      
select sysdate,to_char(sysdate-7,'yyyy-mm-dd HH24:MI:SS') from dual;   
--减1月       
select sysdate,add_months(sysdate,-1) from dual; 
--减1年                             
select sysdate,add_months(sysdate,-12) from dual;                             

3,时间间隔操作

-- 当前时间减3分钟
select sysdate,sysdate - interval '3' MINUTE from dual   
-- 当前时间减3小时    
select sysdate - interval '3' hour from dual   
-- 当前时间减3天              
select sysdate - interval '3' day from dual  
-- 当前时间减3月                
select sysdate,sysdate - interval '3' month from dual  
-- 当前时间减3年      
select sysdate,sysdate - interval '3' year from dual   
-- 当前时间减去8*3小时      
select sysdate,sysdate - 8 *interval '3' hour from dual      

三、MySQL时间获取与计算

1,日期相加

-- 当前时间加1秒
DATE_ADD(NOW(),INTERVAL 1 second)   
-- 当前时间加30分钟            
DATE_ADD(NOW(),INTERVAL 30 MINUTE)    
-- 当前时间加1小时          
DATE_ADD(NOW(),INTERVAL 1 hour)   
-- 当前时间加1天              
DATE_ADD(NOW(),INTERVAL 1 day)     
-- 当前时间加1星期             
DATE_ADD(NOW(),INTERVAL 1 week)  
-- 当前时间加1个月               
DATE_ADD(NOW(),INTERVAL 1 month)  
-- 当前时间加1季度                
DATE_ADD(NOW(),INTERVAL 1 quarter)   
-- 当前时间加1年           
DATE_ADD(NOW(),INTERVAL 1 year)                 

2,日期相减

-- 当前时间减1秒
DATE_SUB(NOW(),INTERVAL 1 second) 
-- 当前时间减30分钟              
DATE_SUB(NOW(),INTERVAL 30 MINUTE) 
-- 当前时间减1小时             
DATE_SUB(NOW(),INTERVAL 1 hour)   
-- 当前时间减1天              
DATE_SUB(NOW(),INTERVAL 1 day)     
-- 当前时间减1星期             
DATE_SUB(NOW(),INTERVAL 1 week)
-- 当前时间减1个月                   
DATE_SUB(NOW(),INTERVAL 1 month)     
-- 当前时间减1季度           
DATE_SUB(NOW(),INTERVAL 1 quarter)  
-- 当前时间减1年           
DATE_SUB(NOW(),INTERVAL 1 year)                 

我是晓之以理的喵,欢迎大家多多交流~~

相关文章
|
2月前
|
存储 缓存 关系型数据库
阿里云数据库 SelectDB 多计算集群核心设计要点揭秘与场景应用
在云原生存算分离架构下,多计算集群的实现从技术方案上看似乎并不存在过多难题。但从产品的角度而言,具备成熟易用的多计算集群能力且能运用于用户实际业务场景中,还有较多核心要点需要深度设计
阿里云数据库 SelectDB 多计算集群核心设计要点揭秘与场景应用
|
4月前
|
数据采集 Java BI
笛卡尔积计算在关系数据库中的高效应用
笛卡尔积计算在关系数据库中的高效应用
|
4月前
|
存储 关系型数据库 分布式数据库
PolarDB,阿里云的云原生分布式数据库,以其存储计算分离架构为核心,解决传统数据库的扩展性问题
【7月更文挑战第3天】PolarDB,阿里云的云原生分布式数据库,以其存储计算分离架构为核心,解决传统数据库的扩展性问题。此架构让存储层专注数据可靠性,计算层专注处理SQL,提升性能并降低运维复杂度。通过RDMA加速通信,多副本确保高可用性。资源可独立扩展,便于成本控制。动态添加计算节点以应对流量高峰,展示了其灵活性。PolarDB的开源促进了数据库技术的持续创新和发展。
295 2
|
6月前
|
SQL 存储 算法
数据库编程大赛:一条SQL计算扑克牌24点
参加NineData举办的数据库编程大赛,展示你的技术才华!用一条SQL语句解决扑克牌24点的计算表达式。这场比赛面向数据库爱好者、开发者、程序员、DBA等,展示你的编程技能,并有机会赢得丰厚奖励。欢迎大家来挑战!
252 0
数据库编程大赛:一条SQL计算扑克牌24点
|
数据库
计算数据库某个表大小
计算数据库某个表大小
|
缓存 弹性计算 分布式计算
阿里云适合建网、web应用、数据分析和计算、数据库系统的云服务器价格参考
阿里云服务器新客专享,新用户完成账号实名认证,享受优惠价格购买计算型、通用型、内存型云服务器爆款配置特价优惠,限1-2台,这些云服务器主要适合搭建网站、web应用、数据分析和计算、数据库系统等中小类型和规模的企业级应用。
414 1
阿里云适合建网、web应用、数据分析和计算、数据库系统的云服务器价格参考
|
存储 Cloud Native 关系型数据库
阿里云最新产品手册——阿里云核心产品——云原生关系型数据库PolarDB——计算与存储分离
阿里云最新产品手册——阿里云核心产品——云原生关系型数据库PolarDB——计算与存储分离自制脑图
246 1
|
SQL 关系型数据库 MySQL
阿里云数据库SQL挑战赛赛题三:计算三角形面积
阿里云开发者社区及数据库团队联合举办「阿里云数据库SQL挑战赛」,来自阿里云数据库团队的技术专家为各位开发者准备了三道由浅入深的赛题,快来试试你有多会写 SQL 吧。此外,我们还为开发者提供了 3 个月免费的 RDS MySQL Serverless 资源,参赛的同时还能体验云上开发的便利性。
835 1
|
存储 机器学习/深度学习 NoSQL
「图型计算架构」GraphTech生态系统2019-第1部分:图型数据库
「图型计算架构」GraphTech生态系统2019-第1部分:图型数据库
|
关系型数据库 Serverless 数据库
《Serverless数据库技术研究报告》——三、 Serverless数据库技术趋势——(二)计算资源标准化,统一底层资源
《Serverless数据库技术研究报告》——三、 Serverless数据库技术趋势——(二)计算资源标准化,统一底层资源
119 0