如何提取周末输入的数据



我在数据库中输入了一个客户端信息列表。我想提取只在周末输入的数据,我想知道是否有办法做到这一点?

到目前为止,这是我的查询,然而,它给了我从6月1日到6月27日输入的所有数据,当时我只想在周末输入数据。如果有人能帮我修改查询以提取周末数据,我将非常感谢

SELECT CLIENT_ID, CREATED_DATE 
FROM DBA_CLIENTLIST 
WHERE CREATED_DATE >= TO_DATE('2021-06-01', 'yyyy-mm-dd') 
AND CREATED_DATE < TRUNC(SYSDATE, 'IW')-2

谢谢

我没有你的表格,所以我会在斯科特的EMP上演示。

SQL> select empno, ename, to_char(hiredate, 'dd.mm.yyyy, dy') hiredate
2  from emp
3  where to_char(hiredate, 'dy', 'nls_date_language = english') in ('sat', 'sun');
EMPNO ENAME      HIREDATE
---------- ---------- ------------------------
7521 WARD       22.02.1981, sun
7934 MILLER     23.01.1982, sat
SQL>

因此,从字面上提取日期值分为sat(urday(和sun(day(的行。


您的查询将是

select client_id, created_date
from dba_clientlist
where to_char(created_date, 'dy', 'nls_date_language = english') in ('sat', 'sun');

您可以使用ISO周作为起点,它与区域性无关:

select *
from your_table
where trunc(created_date) - trunc(created_date, 'IW') in (5,6)

ISO周从周一开始。

select to_char(sysdate, 'DAY') full_name,  
to_char(sysdate, 'DY') abbreviation,  
to_char(sysdate, 'D') day_of_week  
from   dual

相关内容

  • 没有找到相关文章