首页 > 解决方案 > 如何从当前周、月或年的第一天到当前日期获取周、月或年的日期?

问题描述

如果标题令人困惑,我很抱歉。基本上,我正在使用 Oracle Apex 18.x 创建一个仪表板,并在我的一张卡片中比较今天与昨天、本周与上周、本月与上个月以及今年与去年之间的销售额。

我对今天和昨天没有问题。我的问题是周、月和年,因为我只想比较当天,而不是整个上周。

例如,如果今天是本周的第 4 天,那么我也必须将它从上周到第 4 天进行比较。

对于这个月,如果假设今天是 2018 年 3 月 25 日,那么我应该只将它与 2 月 1 日至 25 日进行比较。与年相同。

如果要求是上周满,上个月满,去年满,这不是问题。

标签: sqloracle

解决方案


因为week我会这样做:

select 
TRUNC(sysdate, 'DAY') start_of_the_week,
(sysdate) day_of_current_week,
(TRUNC(sysdate, 'DAY') - 7 ) start_of_last_week
(sysdate - 7) day_of_last_week,
from dual;

因为month它将是:

select 
(sysdate) day_of_current_month,
TRUNC(sysdate, 'mm') month_start_date,
ADD_MONTHS(sysdate,-1) day_of_last_month,
ADD_MONTHS(TRUNC(sysdate, 'mm'),-1) start_of_last_month
from dual;

推荐阅读