My memonote about Java programming

I'm Japanese studying Java programming in Sweden. I write for myself about what I have learned today here, but I would be happy if this blog also helps someone else.

QueryでBETWEEN startDate AND endDate等をする時に気をつける事

デバッグしたら、SimpleDateFormatで、StringからDateにフォーマットを変更する時に、時間まで入力しないとデフォルト時間が00:00:00になるので、例えばQueryで、SELECT ... BETWEEN startDate AND endDateなどをする時に、endDateの日のデータがきちんとSELECTできない事に気付きました。

 

String endDate = "2016-02-20";
Date endDateInDateFormat = new SimpleDateFormat("yyyy-MM-dd").parse(endDate);

 

上の様にすると、endDateInDateFormatは、2016-02-20 00:00:00、となってしまいます。ということは、2016-02-20の夜中の零時0分01秒以降はQueryのendDateに含まれないという事です。つまり2月20日の昼間のデータも、夕方のデータもSELECTされないってことで、それは問題です。なので、以下ように、時間部分をendDateに付け足しました。

Method findFinishedWorkItemsBetweenStartDateAndEnd ...

 

Main method

 

これで2月20日、23時59分59秒までのデータがSELECTされます。