如何判断特定日期是否为星期一?如果不是星期一,我该如何编写一个SQL脚本来告诉我前一个星期一的日期呢?例如,如果日期(27/2/2024)是星期二,我如何使其显示前一个星期一的日期(即26/02/2024)?

我试着在谷歌上搜索,看了一些YouTube视频,但我唯一能找到的解决方案是在SQL Server中.但是,我使用的是SQL Developer/Oracle.到目前为止,我已经能够检测到特定日期是一周中的哪一天:

TO_CHAR( TO_DATE( start_date, 'YYYY-MM-DD' ),'DAY' ) AS systart_day_of_week,

谢谢!

推荐答案

我建议您使用next_day功能.

SQL> select next_day(sysdate - 7, 'MONDAY') from dual;

NEXT_DAY(
---------
26-FEB-24

SQL> select next_day(date '2024-02-16' - 7, 'MONDAY') from dual;

NEXT_DAY(
---------
12-FEB-24

SQL>

Sql相关问答推荐

基于模式或其他行集的数据复制

如何解决Error:operator is not unique:unknown—unknown在一个动态SQL查询?""""

用于平均多个数据并与一个数据点进行比较以判断偏移量的SQL查询

对任何(数组)使用LIKE?

如何使用SQL Server中的Nodes()方法执行与OPENXML相同的操作

ColdFusion+Docker:未安装SQLSERVER包

从结果SQL查询中排除空值

按用户和时间列出的SQL Group考勤列表

通过对象分离实现原子性

在SQL中将项分配给容器

如何使用Clickhouse的COUNT聚合返回所有列,但GROUP BY是这些列的子集

聚合内部的条件在哪里?

group by 并根据同表中其他列的某些条件获取 group by 中的某一列值

SQL SUM Filter逻辑解释

特殊条件计算小计

Clob 问题 - 将 clob 列拆分为多行

Set vs let vs 在snowflake中声明变量

使用SQL中另一个表的查询结果在表中查找记录

Oracle SQL 从多个条件中 Select 但具有相同的 id

postgreSQL 中的循环表