【问题标题】:display day through stored procedure通过存储过程显示日期
【发布时间】:2015-10-24 12:18:38
【问题描述】:

我的 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) ->天 工作日

【问题讨论】:

    标签: mysql sql stored-procedures dayofweek


    【解决方案1】:

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

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

    【讨论】:

    • 你能告诉我,我怎么能用存储过程做到这一点......因为我希望得到这样的答案:call check-date (1982-01-10) ->day weekday跨度>
    • 请帮我做这件事。
    【解决方案2】:

    DAYNAME的帮助下,只需CASE表达

    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');
    

    【讨论】:

    • 你能告诉我,我怎么能用存储过程做到这一点......因为我希望得到这样的答案:call check-date (1982-01-10) ->day weekday跨度>
    • 我们是从数据库中选择的,我们不需要输出参数如果我们需要我们可以传递(out paramName datatype)上面的链接将对您有所帮助
    • 我没有使用 php ...jest mysql !
    • @ashishjobish 抱歉删除我已更正我的答案并重新发布
    猜你喜欢
    • 1970-01-01
    • 2015-07-14
    • 2015-10-28
    • 1970-01-01
    • 2020-03-31
    • 2013-12-15
    • 1970-01-01
    • 2016-05-13
    • 1970-01-01
    相关资源
    最近更新 更多