在我的数据库中,我有 4 列案例:
- 1:星期二
- 2:星期三
- 3:星期四
- 4:星期五
我正在尝试创建一个基于当前日期查找下一个工作日的存储过程。
例如,如果星期三是 xx.xx.xxxx,情况 1,则下一个星期二将是下周的 yy.yy.yyyy。
这是一个难点:)如果想要的工作日是第二天,它应该选择下一周的日期。
到目前为止我所拥有的:
BEGIN
SELECT
CASE case_number
WHEN 1 THEN ''
WHEN 2 THEN ''
WHEN 3 THEN ''
WHEN 4 THEN ''
ELSE 'unknown'
END
FROM customer
WHERE customer_id = customerId;
END
我当然正在寻找“”之间的代码:)我知道我需要使用 DATE_ADD(CURDATE(), INTERVAL x DAY),(我认为..)但我无法弄清楚!有什么建议吗?
最佳答案
使用 DAYOFWEEK(now()) 事实上,你在 CASE 中添加了一个 CASE。
根据星期几添加适当的天数到现在()
SELECT
CASE case_number
WHEN 1 THEN CASE DAYOFWEEK(now())
WHEN 0 THEN DATE_ADD(CURDATE(), INTERVAL x DAY)
WHEN 1 THEN DATE_ADD(CURDATE(), INTERVAL x DAY)
WHEN 2 THEN DATE_ADD(CURDATE(), INTERVAL x DAY)
.....
END
WHEN 2 THEN ''
WHEN 3 THEN ''
WHEN 4 THEN ''
ELSE 'unknown'
END
FROM customer
关于mysql - 使用 mysql 存储过程查找下一个特定工作日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22908650/