Is that a bug? I interpret it as from midnight 2016-04-04 to the first time which has the date 2019-01-31. That includes the full day of 2016-04-04 but nothing from 2019-01-31. This is contrasted with the opposite direction which is midnight 2019-01-31 going backwards, thus not including 2019-01-31 and all the way up till the first time which is 2016-04-04 non-inclusive.
Date time arithmetic is weird ;)