質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

1363閲覧

SQLでの期間抽出について

extliger

総合スコア30

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2017/07/05 07:04

いつもご教授頂きましてありがとうございます。
今回はSQLについてです。

現在下記のようなデータがあります。

DB
id:1
date_start:2017-01-01
date_end:2017-10-01
name:データ1

id:2
date_start:2017-05-01
date_end:2017-05-20
name:データ2

検索をする際にユーザには指定の月を選んでもらって検索をいたします。
検索月「2017-05」

これで検索した際に結果的には「データ1」も含まれて表示を行いたいと考えています。

検索月「2017-05」で検索

結果
データ1
データ2

これをSQL文で実現するにはどのようにしたら良いのでしょうか?

何卒よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

検索月「2017-05」というのが、「2017-05-01」の1日だけを意味するなら、

SQL

1WHERE '2017-05-01' BETWEEN date_start AND date_end

で、OKです。

しかし「2017-05-01」から「「2017-05-31」までの1か月間を意味して、かつ一部でも重なるなら、抽出したい場合、例えば、

id:3
date_start:2017-05-02
date_end:2017-06-30
name:データ3

も含めたい場合は、下記の条件式になります。

SQL

1WHERE date_start < '2017-06-01' And '2017-05-01' <= date_end; 2

投稿2017/07/05 07:41

hatena19

総合スコア33699

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

extliger

2017/07/05 08:21

私の説明不足も全て補って頂き無事に動作いたしました。 id:3を含めた記述がすごく助かりました。本当にありがとうございます!
guest

0

検索月「2017-05」 を選んだときに渡す値をその初日=2017-05-01とすれば

’2017-05-01’ BETWEEN date_start AND date_end

でよいでしょう

投稿2017/07/05 07:09

yambejp

総合スコア114767

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

extliger

2017/07/05 08:22

前回も回答してくださり、今回も的確に回答頂きまして本当にありがとうございます! 感謝しかありません!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問