oracle中日期循环

简介: oracle中日期循环

工作时遇到一个问题,想要将本年度所有的日期(yyyy-mm-dd)和星期一一对应的查出来,经过不断尝试之后,终于成功,现在来总结一下。

1、查询1到30的序列

先考虑使用connect by关键字来解决循环年度内所有日期的问题,于是先写了个SQL试验一下connect by关键字的作用。

select  level lv from dual connect by level <= 365

结果如下图:

image.png

2、查询2022年1月的日期,格式为:yyyy-mm-dd

随后开始加入日期计算,然后再进行遍历,最后得到一个日期的结果集。

select to_date('2021-12-31','yyyy-mm-dd')+level from dual connect by level <= 31

结果如下图:

image.png

3、查询当天是星期几

得到所有的日期结果集后,随后需要判断日期是星期几,这里我用到了下面的sql语法。很成功。

select to_char(sysdate,'day') from dual

结果如下图:

image.png

4、查询当天日期,格式:yyyy-mm-dd和当天是星期几

随后再次加入当天日期字段,得到当天的日期和当天的星期几结果集。

select to_char(sysdate,'yyyy-mm-dd'),to_char(sysdate,'day') from dual

结果如下图:

image.png

5、查询2022年1月份的日期,格式:yyyy-mm-dd和对应的星期

把所有的问题解决完毕后,接下来就是将所有使用的语法进行一个合并,最后就可以得到下面的这个非常正确的结果集了。

select to_char(to_date('2021-12-31', 'yyyy-mm-dd') + level, 'yyyy-mm-dd'),
       to_char(to_date('2021-12-31', 'yyyy-mm-dd') + level, 'day')
from dual
connect by level <= 31

结果如下图:

image.png

相关SQL已正常运行过,不存在无法执行的问题。

目录
相关文章
|
9月前
|
SQL Oracle 关系型数据库
Oracle之日期计算相关函数
Oracle之日期计算相关函数
97 0
|
6月前
|
Oracle 关系型数据库 数据库
oracle日期加减的三种方式
【8月更文挑战第15天】在Oracle数据库中,可通过三种方式对日期进行加减操作:一是利用`ADD_MONTHS`函数增减月份,如`ADD_MONTHS(SYSDATE, 2)`表示两个月后;二是运用算术运算符直接加减天数,如`SYSDATE + 7`表示七天后;三是采用`INTERVAL`表达式增加或减少特定时间间隔,如`SYSDATE + INTERVAL &#39;2&#39; YEAR`表示两年后。这些方法可根据实际需求灵活选用。
3021 5
|
7月前
|
SQL Oracle 算法
|
9月前
|
SQL Oracle 安全
Oracle的PL/SQL循环语句:数据的“旋转木马”与“无限之旅”
【4月更文挑战第19天】Oracle PL/SQL中的循环语句(LOOP、EXIT WHEN、FOR、WHILE)是处理数据的关键工具,用于批量操作、报表生成和复杂业务逻辑。LOOP提供无限循环,可通过EXIT WHEN设定退出条件;FOR循环适用于固定次数迭代,WHILE循环基于条件判断执行。有效使用循环能提高效率,但需注意避免无限循环和优化大数据处理性能。掌握循环语句,将使数据处理更加高效和便捷。
|
9月前
|
Oracle 关系型数据库 数据管理
Oracle常用系统函数之日期和时间类函数:时空穿梭者的魔法棒
【4月更文挑战第19天】Oracle数据库中的日期和时间函数是强大的工具,如同时空穿梭者的魔法棒。`SYSDATE`和`CURRENT_TIMESTAMP`能显示当前时间,助你在数据中记录关键时刻;`ADD_MONTHS`函数让你轻易跃过月份,实现时间穿越;而`TO_DATE`和`TO_CHAR`则负责日期和时间的格式转换,如同时间的化妆师。除此之外,还有`EXTRACT`、`LAST_DAY`等更多魔法道具,帮助数据管理专家们自如操控时间,解决各种挑战。掌握这些函数,你也能在数据世界中自由穿梭!
|
9月前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL中FOR语句循环游标的奇幻之旅
【4月更文挑战第19天】在Oracle PL/SQL中,FOR语句与游标结合,提供了一种简化数据遍历的高效方法。传统游标处理涉及多个步骤,而FOR循环游标自动处理细节,使代码更简洁、易读。通过示例展示了如何使用FOR循环游标遍历员工表并打印姓名和薪资,对比传统方式,FOR语句不仅简化代码,还因内部优化提升了执行效率。推荐开发者利用这一功能提高工作效率。
|
SQL 存储 Oracle
Oracle数据库中日期的操作、主键自增与分页查询
Oracle数据库中日期的操作、主键自增与分页查询
131 0
|
9月前
|
存储 SQL Oracle
|
9月前
|
SQL Oracle 关系型数据库
Oracle之有哪些日期计算函数?
Oracle之有哪些日期计算函数?
162 0
|
Oracle 关系型数据库 数据库
Oracle 数据库中常见的日期和时间函数
Oracle 数据库中常见的日期和时间函数
225 0

推荐镜像

更多