在PL / SQL中比较一天的问题

时间:2017-04-07 07:33:20

标签: sql oracle plsql

我正在研究PL / SQL。同时,我需要比较表中的日期是否是星期五。我应用了下面的代码,但它仍在执行程序的“else”部分。有人可以告诉我这个方法吗?

begin
    select dt into dat from ticket_booking where id=1;
    dy := to_char(dat, 'DAY');
    if  dy = to_char('FRIDAY') then
        dbms_output.put_line(dy);
    else
        dbms_output.put_line('didnt print'||dy);
    end if;
end;

3 个答案:

答案 0 :(得分:2)

而不是DAY,您需要使用fmDAY

begin
select dt into dat from ticket_booking where id=1;
dy := to_char(dat, 'fmDAY');
if  dy = to_char('FRIDAY') then
    dbms_output.put_line(dy);
else
    dbms_output.put_line('didnt print'||dy);
end if;
end;

答案 1 :(得分:2)

只需将'DAY'替换为'Fmday'并繁荣代码运行:)。

DECLARE
  dat DATE;
  dy  VARCHAR2(100);
BEGIN
  SELECT dt INTO dat FROM ticket_booking WHERE id=1;
  dy   := TO_CHAR(dat, 'fmDAY');
  IF dy = TO_CHAR('FRIDAY') THEN
    dbms_output.put_line(dy);
  ELSE
    dbms_output.put_line('didnt print'||dy);
  END IF;
END;
/

答案 2 :(得分:2)

如上所述,我可以补充一下,如果你不想使用字符串比较,可以这样做 比较

to_char(dat, 'DAY', 'NLS_DATE_LANGUAGE=''numeric date language''')

它就像语言,但是在数字中,星期几从1到7计算,你可以用数值比较结果。