Oracle中补全时间的处理

在实际数据处理的过程中,存在日期不连续的问题,可能会导致数据传到前后端出现异常,为了避免这种问题,通常会从数据端进行日期不全的处理:

以下为补全年份的案例:

sql 复制代码
with x as
(select 开始年份 +(level-1)as 年份 
 from(select extract①(YEAR from min(hiredate))as 开始年份.
             extract(YEAR from max(hiredate))as 结束年份
      from emp)
connect by② level③ <= 结束年份 - 开始年份 + 1
)
select * from x;

1、extract函数:用于从时间中提取特定部分,如年月日时分秒,语法:extract(field from source) ;

field:YEAR、MONTH、DAY、HOUR、MINUTE、SECOND等

source:日期或时间值,列名、表达式、常量;

2、connect by:树形查询关键词,此处用于生成数字序列结果集;

3、level:此处用于限制查询结果的行数,这里可以换成rownum,区别在于level用于树形查询的节点,若有相同层级时level相同,rownum用于普通查询,不会出现重复值。

相关推荐
倔强的石头_14 小时前
金仓数据库(KingbaseES) 开发实战:常见迁移挑战与技术解析
数据库
编程小白gogogo14 小时前
苍穹外卖后端环境搭建-数据库环境搭建
数据库
星哥说事14 小时前
基于 MySQL Monitoring and Management 的性能保障实践
数据库·mysql
此生只爱蛋14 小时前
【Redis】列表List类型
数据库·redis·缓存
Jaising66615 小时前
Mybatis Plus 主键生成器实现思路分析
数据库·spring boot·mybatis
程序喵大人15 小时前
SQLITE问题整理
开发语言·数据库·c++·sqlite
菜鸟小九15 小时前
redis实战(缓存)
数据库·redis·缓存
lionliu051915 小时前
数据库的乐观锁和悲观锁的区别
java·数据库·oracle
晴天¥15 小时前
Oracle中的表空间
运维·数据库·oracle
小高求学之路15 小时前
Neo4j - 为什么需要图数据库
数据库·neo4j