存储过程显示星期一或工作日

时间:2015-08-05 09:52:11

标签: mysql stored-procedures xampp

我想编写一个存储过程来查找教师的加入日期,如果它是星期一,它应该显示在星期一,否则它应该显示“工作日”

tbl_teacher表是;

vchr_teacher_name dat_teacher_doj

    teena             1982-01-10         
    lawrence          1979-09-01          
    mathew            1981-10-13            
    job               1980-11-12          

我需要创建一个存储过程作为“CALL CHECK_DATE(1982-01-10)”结果如下:

   day
----------
 weekday
----------

我试过:

DELIMITER //

CREATE PROCEDURE check_date (IN dat date,OUT day varchar(10))

BEGIN

SELECT DAYNAME( dat ) INTO DAY FROM tbl_teachers;

END//

DELIMITER ;

它将错误显示为

#1172 - Result consisted of more than one row 

如何做到这一点,发现这一天是星期一或工作日。

1 个答案:

答案 0 :(得分:-1)

我认为您最好使用function

DROP FUNCTION IF EXISTS  `check_date` //

CREATE  FUNCTION `check_date` (dat date)
RETURNS varchar(10)
BEGIN
   return IF(dayname(dat) = 'Monday' , 'Monday', 'Weekday');
END //

我使用IF函数来确定是否需要返回星期一或其他(工作日)。

在教师桌上使用时,结果将是:

vchr_teacher_name  check_date(`dat_teacher_doj`)
------------------------------------------------
teena              Weekday 
Lawrence           Weekday 
mathew             Weekday 
job                Weekday 
mday               Monday 

我有一个完整的工作sqlfiddle供你试验。