0

pmdayというパラメータがあります。これを実行するときに、その日が土曜日か日曜日かを確認し、その場合は翌月曜日を表示します。

私はmySQLに比較的慣れておらず、他の方法でpmdayを使用するためにSELECTステートメントを実行しています。日が週末に当たる場合にのみ、翌月曜日を表示する列を作成できますか?

これが私がやろうとしていた(そして失敗した)ことの例です。これが、方法がわからない、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;
4

3 に答える 3

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
          );
于 2012-10-31T21:55:07.820 に答える
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
;
于 2012-10-31T21:48:48.800 に答える
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)
);
于 2012-10-31T21:49:24.773 に答える