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

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

前言

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


一、加减日、月、年

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

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

聘用日期    减5天       加5天       减5个月     加5个月     AS5AS5----------- ----------- ----------- ----------- ----------- ----------- -----------
1980-12-17  1980-12-12  1980-12-22  1980-7-17   1981-5-17   1975-12-17  1985-12-17
AI 代码解读

二、加减时、分、秒

SQL> SELECT hiredate AS 聘用日期,
  2         hiredate - 5 / 24 / 60 / 60 AS5秒,
  3         hiredate + 5 / 24 / 60 / 60 AS5秒,
  4         hiredate - 5 / 24 / 60 AS5分钟,
  5         hiredate + 5 / 24 / 60 AS5分钟,
  6         hiredate - 5 / 24 AS5小时,
  7         hiredate + 5 / 24 AS5小时
  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> 
AI 代码解读

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

两个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> 
AI 代码解读

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

加减月份用函数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
AI 代码解读

总结

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

目录
打赏
0
0
0
0
137
分享
相关文章
SQL计算班级语文平均分:详细步骤与技巧
在数据库管理和分析中,经常需要计算某个班级在特定科目上的平均分
Lindorm Ganos 一条 SQL 计算轨迹
Lindorm Ganos 针对轨迹距离计算场景提供了内置函数 ST_Length_Rows,结合原生时空二级索引和时空聚合计算下推技术,能够高效过滤数据并并行执行运算任务。该方案通过主键索引和时空索引快速过滤数据,并利用多Region并行计算轨迹点距离,适用于车联网等场景。具体步骤包括根据车辆识别代码和时间戳过滤数据、范围过滤轨迹点以及并行计算距离。使用限制包括只支持点类型列聚合运算及表中轨迹点需按顺序排列等。测试结果显示,Lindorm Ganos 在不同数据量下均能实现秒级响应。
38 3
|
4月前
|
SQL注入不可怕,XSS也不难防!Python Web安全进阶教程,让你安心做开发!
在Web开发中,安全至关重要,尤其要警惕SQL注入和XSS攻击。SQL注入通过在数据库查询中插入恶意代码来窃取或篡改数据,而XSS攻击则通过注入恶意脚本来窃取用户敏感信息。本文将带你深入了解这两种威胁,并提供Python实战技巧,包括使用参数化查询和ORM框架防御SQL注入,以及利用模板引擎自动转义和内容安全策略(CSP)防范XSS攻击。通过掌握这些方法,你将能够更加自信地应对Web安全挑战,确保应用程序的安全性。
108 3
开发效率与灵活性:SQL vs NoSQL
【8月更文第24天】随着大数据和实时应用的兴起,数据库技术也在不断发展以适应新的需求。传统的SQL(结构化查询语言)数据库因其成熟的数据管理机制而被广泛使用,而NoSQL(Not Only SQL)数据库则以其灵活性和扩展性赢得了众多开发者的青睐。本文将从开发者的视角出发,探讨这两种数据库类型的优缺点,并通过具体的代码示例来说明它们在实际开发中的应用。
141 1
大数据开发SQL代码编码原则和规范
这段SQL编码原则强调代码的功能完整性、清晰度、执行效率及可读性,通过统一关键词大小写、缩进量以及禁止使用模糊操作如select *等手段提升代码质量。此外,SQL编码规范还详细规定了代码头部信息、字段与子句排列、运算符前后间隔、CASE语句编写、查询嵌套、表别名定义以及SQL注释的具体要求,确保代码的一致性和维护性。
130 0
SQL Server、MySQL、PostgreSQL:主流数据库SQL语法异同比较——深入探讨数据类型、分页查询、表创建与数据插入、函数和索引等关键语法差异,为跨数据库开发提供实用指导
【8月更文挑战第31天】SQL Server、MySQL和PostgreSQL是当今最流行的关系型数据库管理系统,均使用SQL作为查询语言,但在语法和功能实现上存在差异。本文将比较它们在数据类型、分页查询、创建和插入数据以及函数和索引等方面的异同,帮助开发者更好地理解和使用这些数据库。尽管它们共用SQL语言,但每个系统都有独特的语法规则,了解这些差异有助于提升开发效率和项目成功率。
594 0
MPP架构数据仓库使用问题之ADB PG云原生版本的扩缩容性能怎么样
MPP架构数据仓库使用问题之ADB PG云原生版本的扩缩容性能怎么样
MPP架构数据仓库使用问题之ADB PG云原生版本的扩缩容性能怎么样
云原生数据仓库使用问题之分组优化如何实现
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
云原生数据仓库操作报错合集之遇到“table does not exist”错误,该怎么办
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
云原生数据仓库操作报错合集之遇到报错“DDL forbidden because backupTask is doing snapshot”如何处理
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等