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用于普通查询,不会出现重复值。

相关推荐
数据智能老司机8 小时前
CockroachDB权威指南——CockroachDB SQL
数据库·分布式·架构
数据智能老司机8 小时前
CockroachDB权威指南——开始使用
数据库·分布式·架构
松果猿9 小时前
空间数据库学习(二)—— PostgreSQL数据库的备份转储和导入恢复
数据库
无名之逆9 小时前
Rust 开发提效神器:lombok-macros 宏库
服务器·开发语言·前端·数据库·后端·python·rust
s9123601019 小时前
rust 同时处理多个异步任务
java·数据库·rust
数据智能老司机9 小时前
CockroachDB权威指南——CockroachDB 架构
数据库·分布式·架构
hzulwy9 小时前
Redis常用的数据结构及其使用场景
数据库·redis
程序猿熊跃晖9 小时前
解决 MyBatis-Plus 中 `update.setProcInsId(null)` 不生效的问题
数据库·tomcat·mybatis
Three~stone11 小时前
MySQL学习集--DDL
数据库·sql·学习
Qi妙代码11 小时前
MYSQL基础
数据库·mysql·oracle