oracle - 计算oracle中两个日期之间的周数

标签 oracle

我使用以下查询来查找两个日期之间的周数:

select  count(week_id) 
from fw 
where week_begin_date >= '2015-01-01' 
and  week_end_date <= '2015-12-31';

预期结果应为 53,但实际结果为 51。

请帮忙解决这个问题。

最佳答案

不能只使用一年中的星期函数吗?如果需要的话减去...

 select to_char(to_date('12/31/2015','MM/DD/YYYY'),'WW') from dual;


select To_Number(to_char(to_date('12/31/2015','MM/DD/YYYY'),'WW')) - 
       To_number(to_char(to_date('01/01/2015','MM/DD/YYYY'),'WW')) +1
from dual;

我们必须添加 +1,因为周从 1 而不是 0 开始。

enter image description here

现在您可能需要 ISO 周格式,即 IW 而不是 WW

WW:一年中的第几周 (1-53),其中第一周从一年中的第一天开始,一直持续到一年中的第七天。

IW:基于 ISO 标准的一年中的第几周(1-52 或 1-53)。

关于oracle - 计算oracle中两个日期之间的周数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36718616/

相关文章:

sql - 是否可以对 INTERVAL DAY TO SECOND 数据类型使用 SUM 查询?

Spring Session table-name 属性不改变表名

java - hibernate 和Java

sql - 在Oracle SQL中,我可以查询表的一个分区而不是整个表以使其运行得更快吗?

sql - 根据另一列值更新列值

oracle - 数据库行设置NULL时如何硬删除数据

sql - DDL VS DCL 区别

java - 因为使用 mybatis 和 spring 进行搜索过滤器会返回整个表

java - Java 6 的哪个 OJDBC 驱动程序?

sql - SQL Pivot 是否可以执行以下查询?