
カレンダーのようなものを作ってスケジュールの管理をしたいと思い、
start_at datetime
end_at datetime
sunday boolean
monday boolean
tuesday boolean
...
のように予定の開始・終了時間と、定期的な予定用に曜日のフラグを立てるためのフィールドを用意しました。
データ作成時にすでに登録してある予定と被っているものを抽出したいのですが、
たとえば
毎週月・水・木曜 10:00~12:00
のデータが登録してあり、
1/4 14:00 ~ 1/10 10:00
みたいなデータを新たに登録しようとした場合にどういう風にSQLを書けばいいのかがよくわかりません。
日付から曜日を割り出して、たとえば0なら日曜のフラグがたっているものを抽出するみたいなSQLをかけるのでしょうか?
できれば1回のSQLでできればいいのですが……
聞きたいことがうまく伝わらないかもしれずもうしわけないです。
よろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
>毎週月・水・木曜 10:00~12:00のデータが登録してあり、
>1/4 14:00 ~ 1/10 10:00
期間内に水曜の10~12字を包含しているので、この場合はフラグが
たつのが正解ではないですか?
おそらくフローがまだ固まっていないのだとおもいます、
きちんと設計段階からコーディングをした方がよいですね
すみません、例が悪かったです。
>1/4 14:00 ~ 1/10 10:00
これだとあれですが、
1/4 14:00 ~ 1/5 9:00
とかだと水曜と木曜にあるのですが、時間外なので水曜・木曜のフラグはたたせたくありません。こういう判定とかできるのかと思い質問しました。
しかし、カラムをもう少し整理したほうがいいですかね。
No.1
- 回答日時:
sunday , monday , tuesday ・・・
というフィールドをつくるのはSQL的ではないですね。
dayofweekなどのフィールドをつくって、0=月、1=火、... 6=日
と入れておいた方が効率的です。
(MySQL的には0は月曜日です)
>日付から曜日を割り出し
SELECT weekday(now());
ただしチューニングを考えたらフィールドを用意する方がいいかも
曜日は単一ではなくて、複数保持したかったので個別にフラグ立てようと思いこういう形にしました。
>SELECT weekday(now());
ありがとうございます。日付から曜日を出すことができました。
また、質問があるのですが
質問文にある
>毎週月・水・木曜 10:00~12:00
>1/4 14:00 ~ 1/10 10:00
これでいうと、月曜の14時から始まっているのですが10:00~12:00に入ってないので月曜はフラグ立てたくないんですが、判別する方法とかあるんでしょうか・・・。
また、1/4~1/10の曜日を出したいんですが、BETWEENみたいなものないのでしょうか。1日1日出そうとするとかなり長い式になってしまうので・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- ヤフオク! 関税 詐欺でしょうか?ヤフオク 3 2023/06/25 11:22
- MySQL SQLで日付別のIDを生成するには 3 2022/10/09 10:34
- その他(恋愛相談) 日程打診してきたのに、その日に自分の予定入れる人 6 2022/06/07 00:40
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Visual Basic(VBA) VBA 毎日取得するデータを順番に反映していく方法 6 2023/08/26 16:22
- Excel(エクセル) Excelマクロの差分抽出のコードを教えていただきたいです。 2 2023/03/14 11:40
- Oracle sqlで質問です。 Aテーブルの登録番号をキーにBテーブルから確認番号を取得したいのですが、Bテーブ 4 2023/05/18 13:08
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- カップル・彼氏・彼女 相談にのってください 同棲して半年で付き合って一年半になります。 彼は職場仲間で、遊戯王のデュエルっ 1 2022/10/25 08:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLローダーCSV取込で、囲み文...
-
テーブルの最後(最新)のレコー...
-
チェックボックス連結
-
フィールドの項目ごとの集計値...
-
int型フィールドにnullを登録で...
-
mysqlimportについて
-
特定のフィールドにデータが入...
-
制御文字を含む文字列を扱うには
-
SELECTした合計値をそのまま割...
-
PHPによるMySQL select文の操作...
-
フィールドの型について
-
タイムスタンプ型を抽出条件に...
-
あるフィールドのみ重複するデ...
-
2回実行のSQL文を1回にしたい
-
重複の抽出
-
フィールドを結合して検索するには
-
最大値が抽出できない!
-
レコード数を重複を省いて取得...
-
テーブルのフィールドの一番長...
-
Oracleで「文字が無効です」の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLローダーCSV取込で、囲み文...
-
テーブルの最後(最新)のレコー...
-
BLOBやCLOBのパフォーマンスを...
-
int型フィールドにnullを登録で...
-
SELECTした合計値をそのまま割...
-
配列に指定した値が含まれてい...
-
テーブルのフィールドの一番長...
-
2回実行のSQL文を1回にしたい
-
Null値件数をカウントする式に...
-
ファイルメーカーのフィールド...
-
固定長データのテキストファイ...
-
ACCESSのクエリで空白以降を別...
-
CSVからNULL値をインポート
-
MySQLでの近似値順での値の取得...
-
REGEXPで希望の動作をしてくれない
-
郵政省の郵便番号を取り込みた...
-
【MySQL】 DECIMAL(2,1) に 13...
-
date型のselect について
-
phpmyadminで条件付きの検索置...
-
入力データの半角スペースと全...
おすすめ情報