こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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
の条件式の書き方がわかりません。
どなたか教えていただけますでしょうか?

投稿日時 - 2016-10-27 22:22:03

QNo.9248441

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.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,,,)で返す関数があるので要件がはっきりすれば答えが出せるかもしれません。

投稿日時 - 2016-10-28 01:36:36

補足

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関数を調べてみます。

投稿日時 - 2016-10-28 02:42:38

あなたにオススメの質問