加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 16:23:02 所属栏目:MsSql教程 来源:网络整理
导读:我一直试图找到问题所在,但我只是运气不好,根本不理解这个问题.我有以下代码: CREATE OR REPLACE FUNCTION ckeckDay(dateC in date)RETURN VARCHARIS day VARCHAR(15); checkFriday VARCHAR(1);BEGIN checkFriday := 'N'; day := to_char(dateC,'DAY'); IF d
我一直试图找到问题所在,但我只是运气不好,根本不理解这个问题.我有以下代码:
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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读