oracle 在SQL中匹配星期几[重复]

u5rb5r59  于 2023-05-16  发布在  Oracle
关注(0)|答案(1)|浏览(133)
    • 此问题已在此处有答案**:

Issue with comparision of day in PL/SQL [duplicate](3个答案)
Oracle day of the week issue [duplicate](2个答案)
oracle where clause is not working with sysdate [duplicate](2个答案)
Extracting day in Date(4个答案)
6天前关闭。
我有一些麻烦与我的sql,那我试着匹配的一周的一天,是在我的数据库与一周的一天,所以我有collunm "ds_dia_execucao"的值为example:WEDNESDAY,THURSDAY,FRIDAY(在逗号的开头和后面有空格)在这种情况下,我的代码可以工作(今天是星期三),但是如果值只有一天,或者我试图匹配的是最后一天,它就不工作了,例如:星期三(不工作)或:星期一、星期二、星期三
我的SQL是:

SELECT ds_sql,ds_dia_execucao
FROM my_table
WHERE 
REPLACE(ds_dia_execucao, ',', ' ') LIKE 
        '%' || TO_CHAR(SYSDATE,'DAY', 'NLS_DATE_LANGUAGE=PORTUGUESE') || '%';

我希望能和星期几匹配

cngwdvgl

cngwdvgl1#

不如

SQL> with my_table (ds_dia_execucao) as
  2    (select 'MONDAY, TUESDAY, WEDNESDAY' from dual union all
  3     select 'FRIDAY, SATURDAY, THURSDAY' from dual
  4    )
  5  select ds_dia_execucao,
  6    --
  7    sysdate,
  8    to_char(sysdate, 'fmDAY') todays_day,
  9    case when instr(ds_dia_execucao, to_char(sysdate, 'fmDAY')) > 0 then 'match'
 10         else 'no match'
 11    end result
 12  from my_table;

DS_DIA_EXECUCAO            SYSDATE    TODAYS_DA RESULT
-------------------------- ---------- --------- --------
MONDAY, TUESDAY, WEDNESDAY 10-05-2023 WEDNESDAY match
FRIDAY, SATURDAY, THURSDAY 10-05-2023 WEDNESDAY no match

SQL>

(My会话现在讲英语;我猜你在查询中使用的日期名称不是葡萄牙语,正如你所说的)。

相关问题