我正在尝试检查当前周是否存在特定的一天。 但是我希望本周从星期日到星期六。截至目前,一周是从星期一到星期日。这是我的查询:
@JsonTypeName("CAT")
public class CatTopic extends A implements AlpahInterface, BetaInterface, CharlieInterface {}
我是oracle的新手,所以有人可以帮忙吗?
说
SELECT count(d3.COL02) ,d3.COL01 from Table d3 where TO_CHAR(d3.COL10, 'YYYYWW') = TO_CHAR(SYSDATE, 'YYYYWW');
执行查询TableA contains following data:
ID,COL01,COL02,COL10
1,199,10,28-07-18
2,199,10,29-07-18
3,199,20,30-07-18
4,199,20,31-07-18
提供输出
SELECT count(d3.COL02) ,d3.COL01 from TableA d3 where TO_CHAR(d3.COL10, 'YYYYWW') = TO_CHAR(SYSDATE, 'YYYYWW') group by d3.COL01;
但期望输出:
count(COL02),COL01
2,199
答案 0 :(得分:2)
查看此查询:
with tableA(id, col01, col02, col10) as (
select 1, 199, 10, date '2018-07-28' from dual union all
select 2, 199, 10, date '2018-07-29' from dual union all
select 3, 199, 20, date '2018-07-30' from dual union all
select 4, 199, 20, date '2018-07-31' from dual )
select d3.col10,
to_char(col10, 'day', 'nls_date_language=English') day,
to_char(col10, 'yyyyww') yw,
to_char(col10 + 1, 'yyyyww') yw1
from tableA d3
结果:
COL10 DAY YW YW1
----------- --------- ------ ------
2018-07-28 saturday 201830 201830
2018-07-29 sunday 201830 201831
2018-07-30 monday 201831 201831
2018-07-31 tuesday 201831 201831
第YW
列是现在的内容,当您添加一天的日期时,将星期日分配给下周。因此,将您的条件更改为:
where to_char(d3.col10 + 1, 'yyyyww') = to_char(sysdate + 1, 'yyyyww')
答案 1 :(得分:0)
这将起作用:
select count(*)from TableA d3 where to_char(d3.col10,'IW')=to_char(sysdate,'IW');
并且输出将是2本身,因为前几个月分别是7月28日和29日。