2016-09-16 8 views
0

私は年と月の与えられた範囲の行を選択しようとしています。 (i.e.: from <start year>+<start month> to <end year>+<end month>).開始年と開始月の間のデータを選択して、終了年と終了月を指定しますか?

私は以下の表を使用しました。

Id Page_id Url Score Month Year 
1 1  Link 192  4  2015 
2 1  Link 247  5  2015 
3 1  Link 304  6  2015 
4 1  Link 283  7  2015 
.     
.     
10 1  Link 288  1  2016 
11 1  Link 295  2  2016 
12 1  Link 393  3  2016 

私はフェッチされたデータです。(<5+2015> to <2+2016>)です。 以下のクエリを試しましたが、予期しない行があります。何か不足していますか?

SELECT * FROM `readability` AS t WHERE t.url 
     BETWEEN STR_TO_DATE(CONCAT('5', '2015'), '%Y%m') AND 
       LAST_DAY(STR_TO_DATE(CONCAT('2', '2016'), '%Y%m')); 

答えて

1

よろしくお願いします。 urlは、あなたが望む条件に何が関係していますか?

はおそらく、あなたがしたい:

where year * 100 + month between 201505 and 201602 

あなたのデータには、日付の列がありません。 の場合、はすべてを日付に変換できますが、整数(または文字列)の比較で十分です。

0

日付に関するデータを日付に変換するmysqlデータ型。

それからちょうどこのようなクエリを行います。

SELECT * FROM `readability` WHERE (date_field BETWEEN '2015-01-05' AND '2016-01-02'); 
関連する問題