MYSQL存储过程if else dayname

MYSQL存储过程if else dayname,mysql,stored-procedures,Mysql,Stored Procedures,我需要编写一个存储过程来找出教师的加入日期,如果是星期一,则应显示星期一,否则应显示工作日。我对存储过程非常陌生,如何显示“工作日”? 我已经准备了一个代码,但出现了错误。(dat_teacher_doj是日期数据类型) 分隔符// 创建程序检查日期(美国司法部日期) 开始 选择dayname(dat_teacher_doj)作为tbl_teachers中的day,其中dat_teacher_doj=doj; 如果有一天那么星期一 设定日期为“工作日”; 如果结束 结束// 定界符首先需要声明

我需要编写一个存储过程来找出教师的加入日期,如果是星期一,则应显示星期一,否则应显示
工作日
。我对存储过程非常陌生,如何显示“工作日”? 我已经准备了一个代码,但出现了错误。(dat_teacher_doj是日期数据类型)

分隔符//
创建程序检查日期(美国司法部日期)
开始
选择dayname(dat_teacher_doj)作为tbl_teachers中的day,其中dat_teacher_doj=doj;
如果有一天那么星期一
设定日期为“工作日”;
如果结束
结束//

定界符首先需要声明变量。然后使用选择。。。在声明变量后,将其转换为

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');
最后一行中的呼叫与“check_date”和“checkdate”程序的名称不同。你为什么要传递一个日期字符串?我可以理解传递教师id之类的信息,但不能理解静态日期。