• 締切済み

MYSQLで期間指定の条件式の書き方教えてください

毎週火曜日と木曜日に定期巡回便が出ます。 まとめて前準備しておくお荷物を抽出したいのですが 日付の条件抽出の仕方で教えてください たとえば・・・Excelのワークシート関数だと A1=2016/11/3 とすると A1+CHOOSE(WEEKDAY(A1,1),2,1,0,1,0,4,3),"m/d" から A1+CHOOSE(WEEKDAY(A1,1),3,2,1,5,4,5,4),"m/d" までという数式になります。 上の例だと11/3木に用意しておくのは11/3木から11/7月までの品 というふうに条件指定してみたいのですが これをMYSQLのwhere句側でSQL文で書くと、どうなりますでしょうか? where 指定日 between 条件式1 and 条件式2 の条件式の書き方がわかりません。 どなたか教えていただけますでしょうか?

みんなの回答

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

もう少し条件を具体的に書かれたほうが回答しやすいです。 > A1=2016/11/3 とすると の「2016/11/3」がテーブルの項目値なのか、項目値ならばDATE型と考えていいのか、それとも現在の日付なのかよく分かりませんでした。 > where 指定日 between 条件式1 and 条件式2 の「指定日」はテーブル項目でDATE型でよろしいでしょうか。 「指定日」と「条件式1」、「条件式2」と関係が今ひとつつかみにくいです。 > A1+CHOOSE(WEEKDAY(A1,1),2,1,0,1,0,4,3),"m/d" > から > A1+CHOOSE(WEEKDAY(A1,1),3,2,1,5,4,5,4),"m/d" もそのままではEXCELのセルに入力できませんでしたし、CHOOSEの中の数列が何を意味しているのかよく分かりませんでした。 出来ればこれで期間が指定できるロジックを教えてください。 MySQLにも「 DAYOFWEEK()」というDATE型から曜日を数値(日=1、月=2,,,)で返す関数があるので要件がはっきりすれば答えが出せるかもしれません。

Passerby01
質問者

補足

textが抜けてましたね 補足しますと・・・ 項目値 a1に日付型 条件式1 =TEXT(A1+CHOOSE(WEEKDAY(A1,1),2,1,0,1,0,4,3),"m/d") WEEKDAY関数,引数1は日曜を0じゃなく1から数えます 1:日曜日 2:月曜日 3:火曜日 4:水曜日 5:木曜日 6:金曜日 7:土曜日 となります 1:日曜日なら+2で火曜日 2:月曜日なら+1で火曜日 3:火曜日なら+0で火曜日 4:水曜日なら+1で木曜日 5:木曜日なら+0で木曜日 6:金曜日なら+4で火曜日 7:土曜日なら+3で火曜日 条件式2 =TEXT(A1+CHOOSE(WEEKDAY(A1,1),3,2,1,5,4,5,4),"m/d") 1:日曜日なら+3で水曜日 2:月曜日なら+2で水曜日 3:火曜日なら+1で水曜日 4:水曜日なら+5で月曜日 5:木曜日なら+4で月曜日 6:金曜日なら+5で水曜日 7:土曜日なら+4で水曜日 先ずはDAYOFWEEK関数を調べてみます。

関連するQ&A