【SQL开发实战技巧】系列(十六):数据仓库中时间类型操作(初级)日、月、年、时、分、秒之差及时间间隔计算

简介: 日、月、年、时、分、秒之差及时间间隔计算。【SQL开发实战技巧】这一系列博主当作复习旧知识来进行写作,毕竟SQL开发在数据分析场景非常重要且基础,面试也会经常问SQL开发和调优经验,相信当我写完这一系列文章,也能再有所收获,未来面对SQL面试也能游刃有余~。本章介绍的关于时间的计算比较简单,主要是为了后面时间计算文章做铺垫!

前言

本篇文章讲解的主要内容是:日、月、年、时、分、秒之差及时间间隔计算
【SQL开发实战技巧】这一系列博主当作复习旧知识来进行写作,毕竟SQL开发在数据分析场景非常重要且基础,面试也会经常问SQL开发和调优经验,相信当我写完这一系列文章,也能再有所收获,未来面对SQL面试也能游刃有余~。


一、加减日、月、年

在Oracle中,date类型可以直接加减天数,而加减月份要用add_months函数:

SQL> SELECT hiredate AS 聘用日期,
  2         hiredate - 5 AS 减5天,
  3         hiredate + 5 AS 加5天,
  4         add_months(hiredate, -5) AS 减5个月,
  5         add_months(hiredate, 5) AS 加5个月,
  6         add_months(hiredate, -5 * 12) AS减5年,
  7         add_months(hiredate, 5 * 12) AS加5年
  8    FROM emp
  9   WHERE ROWNUM <= 1;

聘用日期    减5天       加5天       减5个月     加5个月     AS减5年     AS加5年
----------- ----------- ----------- ----------- ----------- ----------- -----------
1980-12-17  1980-12-12  1980-12-22  1980-7-17   1981-5-17   1975-12-17  1985-12-17

二、加减时、分、秒

SQL> SELECT hiredate AS 聘用日期,
  2         hiredate - 5 / 24 / 60 / 60 AS 减5秒,
  3         hiredate + 5 / 24 / 60 / 60 AS 加5秒,
  4         hiredate - 5 / 24 / 60 AS 减5分钟,
  5         hiredate + 5 / 24 / 60 AS 加5分钟,
  6         hiredate - 5 / 24 AS 减5小时,
  7         hiredate + 5 / 24 AS 加5小时
  8    FROM emp
  9   WHERE ROWNUM <= 1;

聘用日期    减5秒       加5秒       减5分钟     加5分钟     减5小时     加5小时
----------- ----------- ----------- ----------- ----------- ----------- -----------
1980-12-17  1980-12-16  1980-12-17  1980-12-16  1980-12-17  1980-12-16  1980-12-17

SQL> 

三、日期间隔之时、分、秒

两个date相减,得到的就是天数,乘以24就是小时,以此类推,可以计算出秒。

SQL> 
SQL> SELECT 间隔天数,
  2  间隔天数*24 AS 间隔小时,
  3  间隔天数*24*60 AS 间隔分,
  4  间隔天数*24*60*60 AS 间隔秒
  5  FROM( SELECT MAX(hiredate)-MIN(hiredate) AS 间隔天数
  6  FROM emp
  7  WHERE ename IN ('WARD','ALLEN'))X;

      间隔天数       间隔小时        间隔分        间隔秒
---------- ---------- ---------- ----------
         2         48       2880     172800

SQL> 

四、日期间隔之日、月、年

加减月份用函数add_months,而计算月份间隔就要用函数months_between

SQL> SELECT max_hd - min_hd 间隔天,
  2         months_between(max_hd, min_hd) 间隔月,
  3         months_between(max_hd, min_hd) / 12 间隔年
  4    FROM (SELECT min(hiredate) min_hd, MAX(hiredate) max_hd FROM emp) x;

       间隔天        间隔月        间隔年
---------- ---------- ----------
14906.6928 489.764283 40.8136903

总结

本章介绍的关于时间的计算比较简单,主要是为了后面时间计算文章做铺垫!

相关文章
|
SQL 运维 监控
SQL查询太慢?实战讲解YashanDB SQL调优思路
本文是Meetup第十期“调优实战专场”的第二篇技术文章,上一篇《高效查询秘诀,解码YashanDB优化器分组查询优化手段》中,我们揭秘了YashanDB分组查询优化秘诀,本文将通过一个案例,助你快速上手YashanDB慢日志功能,精准定位“慢SQL”后进行优化。
|
SQL 存储 大数据
Dataphin V5.0:支持创建异步调用API,实现慢 SQL 复杂计算的直连消费
本文介绍了数据服务产品中异步调用的应用场景与优势,包括大数据引擎查询、复杂SQL及大规模数据下载等场景,解决了同步调用可能导致的资源浪费和性能问题。通过创建异步API、测试发布以及权限申请等功能,实现高效稳定的服务提供。以电商订单查询为例,展示了如何利用异步调用提升系统性能与用户体验。
513 9
|
SQL 数据库 UED
SQL性能提升秘籍:5步优化法与10个实战案例
在数据库管理和应用开发中,SQL查询的性能优化至关重要。高效的SQL查询不仅可以提高应用的响应速度,还能降低服务器负载,提升用户体验。本文将分享SQL优化的五大步骤和十个实战案例,帮助构建高效、稳定的数据库应用。
1668 3
|
SQL 存储 缓存
SQL计算班级语文平均分:详细步骤与技巧
在数据库管理和分析中,经常需要计算某个班级在特定科目上的平均分
1002 5
|
SQL 数据处理 数据库
SQL语句优化与查询结果优化:提升数据库性能的实战技巧
在数据库管理和应用中,SQL语句的编写和查询结果的优化是提升数据库性能的关键环节
1288 0
|
SQL 关系型数据库 MySQL
sql注入原理与实战(三)数据库操作
sql注入原理与实战(三)数据库操作
sql注入原理与实战(三)数据库操作
|
SQL 存储 并行计算
Lindorm Ganos 一条 SQL 计算轨迹
Lindorm Ganos 针对轨迹距离计算场景提供了内置函数 ST_Length_Rows,结合原生时空二级索引和时空聚合计算下推技术,能够高效过滤数据并并行执行运算任务。该方案通过主键索引和时空索引快速过滤数据,并利用多Region并行计算轨迹点距离,适用于车联网等场景。具体步骤包括根据车辆识别代码和时间戳过滤数据、范围过滤轨迹点以及并行计算距离。使用限制包括只支持点类型列聚合运算及表中轨迹点需按顺序排列等。测试结果显示,Lindorm Ganos 在不同数据量下均能实现秒级响应。
280 3
|
SQL 安全 Go
SQL注入不可怕,XSS也不难防!Python Web安全进阶教程,让你安心做开发!
在Web开发中,安全至关重要,尤其要警惕SQL注入和XSS攻击。SQL注入通过在数据库查询中插入恶意代码来窃取或篡改数据,而XSS攻击则通过注入恶意脚本来窃取用户敏感信息。本文将带你深入了解这两种威胁,并提供Python实战技巧,包括使用参数化查询和ORM框架防御SQL注入,以及利用模板引擎自动转义和内容安全策略(CSP)防范XSS攻击。通过掌握这些方法,你将能够更加自信地应对Web安全挑战,确保应用程序的安全性。
422 4
|
SQL 缓存 监控
SQL性能提升指南:五大优化策略与十个实战案例
在数据库性能优化的世界里,SQL优化是提升查询效率的关键。一个高效的SQL查询可以显著减少数据库的负载,提高应用响应速度,甚至影响整个系统的稳定性和扩展性。本文将介绍SQL优化的五大步骤,并结合十个实战案例,为你提供一份详尽的性能提升指南。
1871 0
|
SQL 监控 关系型数据库
SQL语句性能分析:实战技巧与详细方法
在数据库管理中,分析SQL语句的性能是优化数据库查询、提升系统响应速度的重要步骤
1453 0

热门文章

最新文章