在 Oracle 数据库中,可以通过 to_char 对日期进行转换,获得周信息等,以便进行计算。
获取周几信息
例如 2022年9月23日,是星期五:
SQL> select to_char(sysdate,'DY') from dual; TO_CHAR(SYSD ------------ FRI SQL> select sysdate from dual; SYSDATE --------- 23-SEP-22
复制
判断获取周末
更复杂一点的判断:
SQL> select table_name,last_analyzed, case when to_char(last_analyzed,'DY') in ('SAT','SUN') then 'Weekend' end tag from dba_tables where rownum < 20; TABLE_NAME LAST_ANAL TAG ------------------------------ --------- ------- ICOL$ 20-MAR-18 COL$ 10-SEP-22 Weekend IND$ 22-SEP-22 TAB$ 23-SEP-22 CLU$ 22-SEP-22 LOB$ 20-MAR-18 COLTYPE$ 20-MAR-18 SUBCOLTYPE$ 20-MAR-18 NTAB$ 20-MAR-18 REFCON$ 26-JAN-17 OPQTYPE$ 20-MAR-18 TABLE_NAME LAST_ANAL TAG ------------------------------ --------- ------- ICOLDEP$ 20-MAR-18 VIEWTRCOL$ 26-JAN-17 LIBRARY$ 20-MAR-18 ASSEMBLY$ 26-JAN-17 ATTRCOL$ 20-MAR-18 TYPE_MISC$ 20-MAR-18 TS$ 20-MAR-18 FET$ 26-JAN-17 19 rows selected.
复制
获取周一
通过 ISO-Week,截取,可以找到每个日期所属的周一日期:
SQL> select table_name,last_analyzed,trunc(last_analyzed,'IW') "Monday" from dba_tables where rownum <10; TABLE_NAME LAST_ANAL Monday ------------------------------ --------- --------- ICOL$ 20-MAR-18 19-MAR-18 COL$ 10-SEP-22 05-SEP-22 IND$ 22-SEP-22 19-SEP-22 TAB$ 23-SEP-22 19-SEP-22 CLU$ 22-SEP-22 19-SEP-22 LOB$ 20-MAR-18 19-MAR-18 COLTYPE$ 20-MAR-18 19-MAR-18 SUBCOLTYPE$ 20-MAR-18 19-MAR-18 NTAB$ 20-MAR-18 19-MAR-18
复制
判断日期
判断某个日期是一周中的周几,另外一个算法:
SQL> select table_name,last_analyzed,trunc(last_analyzed,'IW') "Monday", trunc(last_analyzed)-trunc(last_analyzed,'IW')+1 "Days" from dba_tables where rownum <10; TABLE_NAME LAST_ANAL Monday Days ------------------------------ --------- --------- ---------- ICOL$ 20-MAR-18 19-MAR-18 2 COL$ 10-SEP-22 05-SEP-22 6 IND$ 22-SEP-22 19-SEP-22 4 TAB$ 23-SEP-22 19-SEP-22 5 CLU$ 22-SEP-22 19-SEP-22 4 LOB$ 20-MAR-18 19-MAR-18 2 COLTYPE$ 20-MAR-18 19-MAR-18 2 SUBCOLTYPE$ 20-MAR-18 19-MAR-18 2 NTAB$ 20-MAR-18 19-MAR-18 2 9 rows selected.
复制
最后修改时间:2022-09-23 10:27:54
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
563次阅读
2025-04-15 17:24:06
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
490次阅读
2025-04-18 14:18:38
Oracle SQL 执行计划分析与优化指南
Digital Observer
462次阅读
2025-04-01 11:08:44
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
455次阅读
2025-04-08 09:12:48
墨天轮个人数说知识点合集
JiekeXu
454次阅读
2025-04-01 15:56:03
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
442次阅读
2025-04-22 00:20:37
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
429次阅读
2025-04-20 10:07:02
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
417次阅读
2025-04-22 00:13:51
Oracle 19c RAC更换IP实战,运维必看!
szrsu
401次阅读
2025-04-08 23:57:08
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
374次阅读
2025-04-17 17:02:24