sql – 将to_char(myDate,’DAY’)的结果与字符串进行比较时出现问题

前端之家收集整理的这篇文章主要介绍了sql – 将to_char(myDate,’DAY’)的结果与字符串进行比较时出现问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直试图找到问题所在,但我只是运气不好,根本不理解这个问题.我有以下代码
CREATE OR REPLACE FUNCTION ckeckDay(dateC in date)
RETURN VARCHAR
IS
  day VARCHAR(15);
  checkFriday VARCHAR(1);
BEGIN
  checkFriday := 'N';
  day := to_char(dateC,'DAY');
  IF day = 'FRIDAY' THEN
    checkFriday := 'Y';
  END IF;
  RETURN day;
END;
/

dateC设置为星期五(甚至通过返回day而不是day变量进行测试,它返回星期五.)然而IF语句永远不会评估为true,即使day变量确实是星期五.任何想法如何绕过这个问题.谢谢

解决方法

这是因为day变量包含空白填充值.使用trim函数去除前导和尾随空格:
IF trim(day) = 'FRIDAY' THEN
  checkFriday := 'Y';
END IF;

请使用VARCHAR2数据类型作为字符串变量.不要使用VARCHAR.

猜你在找的MsSQL相关文章