MYSQL存储过程if else dayname

时间:2015-01-05 07:49:11

标签: mysql stored-procedures

我需要编写一个存储过程来查找教师的加入日期,如果它是星期一,它应该显示在星期一,否则它应该显示Weekday。我在存储过程中非常新,我可以在工作日显示? 我准备了一个代码,但是我发现了错误。(dat_teacher_doj是日期数据类型)



Delimiter //
CREATE PROCEDURE check_date(IN doj date)
BEGIN
select dayname(dat_teacher_doj)as day from tbl_teachers where dat_teacher_doj=doj;
IF day!='Monday' THEN
SET day='Weekday';
END IF
END //
Delimiter ;




AM获得错误:UNKNWN SYSTEM VARIABLE' day'

1 个答案:

答案 0 :(得分:2)

首先需要DECLARE您的变量。然后在声明变量后使用SELECT ... INTO。

DELIMITER //
CREATE PROCEDURE check_date (IN teacher_id VARCHAR(100))
BEGIN
    DECLARE day VARCHAR(100);
    SELECT dayname(dat_teacher_doj) INTO day FROM tbl_teachers WHERE id = teacher_id;
    SELECT CASE WHEN day != 'Monday' THEN 'Weekday' ELSE day END;
END;
//
DELIMITER ;

当您致电手续时,需要在输入日期前加上引号。

call check_date('1982-01-11');