【问题标题】:stored procedure to display monday or weekday显示星期一或工作日的存储过程
【发布时间】:2015-10-28 00:36:18
【问题描述】:

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

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 

如何执行此操作并找到日期是星期一或工作日。

【问题讨论】:

  • 简单的存储过程从参数日期中查找日期

标签: mysql stored-procedures xampp


【解决方案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 供你试验。

【讨论】:

    猜你喜欢
    • 2015-10-24
    • 2021-06-02
    • 2014-06-15
    • 1970-01-01
    • 1970-01-01
    • 2012-03-05
    • 1970-01-01
    • 2014-02-23
    • 2015-07-14
    相关资源
    最近更新 更多