2017-12-07 12 views
0

日付の範囲で行を返すクエリを実行する必要があります。 日付は「22/11/2017」のような文字列形式で保存されますで使用しようとしましたが、それほどうまく動作しません。 私のクエリ:文字列の日付で検索mysql

​​

結果:あなたのケースでは

'24/09/2017','24/10/2017','24/11/2017','24/12/2017','25/09/2017','25/10/2017,.. 
+0

あなた場合_The日付がSTRING_に保存されますスキーマを変更することができます、私は非常にvarcharから日付に列を変換することをお勧めします、それはあなたの人生を簡素化し、また、日付でクエリを迅速になります。 –

答えて

1
Select STR_TO_DATE(string_date_col, '%d/%m/%y') FROM table_name... 

、あなたが日付に変換されていますが、再び文字列と比較されて、あなたはすべての文字列を変換する必要があります有効な比較を持つことができるように日付形式にしてください。

(str_to_date(Activities.Date,'%d/%m/%Y')>=str_to_date("01/11/2017",'%d/%m/%Y') 

の代わりに

(str_to_date(Activities.Date,'%d/%m/%Y')>="01/11/2017" 
0

あなたはあなたのクエリがあるべきこと11月2017での月に記録されているすべての活動を取得するためにActivities.Date LIKE "%11/2017"のようなSQLワイルドカードを使用することができます。

SELECT Activities.Date AS 'dates' FROM Attendance 
         INNER JOIN Activities ON Activities.ID=Attendance.ActivitiesID 
         INNER JOIN Groups ON Activities.GroupID=Groups.ID 
         INNER JOIN Projects ON Projects.ID=Groups.ProjectID 
         WHERE Attendance.Attendance <>'' AND Projects.ID=16 AND Activities.Date LIKE "%11/2017" GROUP BY Activities.Date 
         ORDER BY Groups.Name 
+0

Febrauryは ''%02/2017 ''のようになります。だからそれはうまくいく;) – cdaiga