我有一个名为pmday的参数,我希望,当它被消耗时,检查一天是在星期六或星期日,如果是,则显示星期一之后。
我是mySQL的新手,我正在运行SELECT语句以其他方式使用pmday。我可以创建一个显示星期一后一天的列,只有当这一天是在周末吗?
这是我一直在尝试(和失败)的例子。我不确定这是不是我不知道如何,select语句中的函数不被允许,或者一般格式化和使用逗号的问题。
谢谢!
SELECT
pmday AS EnteredDate,
IF DateFormat(pmday, '%W') = 'Saturday' then
Date_Add('pmday', INTERVAL 2 DAY) AS FollowingMonday
Else If DateFormat(pmday, '%W') = 'Sunday' then
Date_Add('pmday', INTERVAL 1 DAY) AS FollowingMonday
END IF;
答案 0 :(得分:0)
SELECT
pmday AS EnteredDate,
CASE Date_Format(pmday, '%W')
WHEN 'Saturday' THEN Date_Add(pmday, INTERVAL 2 DAY)
WHEN 'Sunday' THEN Date_Add(pmday, INTERVAL 1 DAY)
ELSE pmday
END AS FollowingMonday
;
答案 1 :(得分:0)
你的if语句错了..
这对我有用......
set @pmday = current_date;
select
if(Date_Format(@pmday, '%W') = 'Saturday',
Date_Add(@pmday, INTERVAL 2 DAY),
if(Date_Format(@pmday, '%W') = 'Sunday',
Date_Add(@pmday, INTERVAL 1 DAY), @pmday)
);
答案 2 :(得分:0)
---如果选定日期是星期六或星期日,则找到下一个星期一
set @pmday = "2012-10-20";
select if(
DAYOFWEEK( @pmday) = 1 or DAYOFWEEK( @pmday) = 7
, DATE_ADD( @pmday, INTERVAL (9 - IF(DAYOFWEEK( @pmday)=1, 8, DAYOFWEEK( @pmday))) DAY)
, @pmday
);