通过存储过程显示日期

时间:2015-08-02 07:28:07

标签: mysql sql stored-procedures dayofweek

我在MySQL存储过程中遇到问题

tbl_teachers

id           dat_teacher_doj   fk_int_dept_id

1            1982-01-10          1
2            1979-09-01          1
3            1981-10-13          1

这里我需要创建一个存储过程来查找教师的加入日期,如果它是星期一它应该显示星期一,否则它应该显示“工作日”? 我需要答案:

呼叫检查日期(1982-01-10) - >天 平日

2 个答案:

答案 0 :(得分:2)

您不需要存储过程。围绕dayofweek调用的简单case表达式可以解决这个问题:

SELECT id, dat_teacher_doj,
       CASE DAYOFWEEK(dat_teacher_doj) WHEN 2 THEN 'Monday' ELSE 'Weekday' END
FROM   tbl_teachers

答案 1 :(得分:1)

CASE

的帮助下,只需DAYNAME表达式
SELECT id, dat_teacher_doj,
       CASE DAYNAME(dat_teacher_doj) WHEN 'Monday' THEN 'Monday' ELSE 'Weekday' END
FROM   tbl_teachers

程序:这适用于localhost phpmyadmin以及workbench

CREATE PROCEDURE `GetWeekDay`(IN `paramDate` DATE)
 NO SQL 
SELECT CASE DAYNAME(paramDate) WHEN 'Monday' THEN 'Monday' ELSE 'Weekday' END AS 'WkDy' 

呼叫

CALL `GetWeekDay`('2015-08-03');