Hi,
I've tried to reproduce the issue with the same configuration on my end and I get that MySQL query:
SELECT DATE_FORMAT(FROM_UNIXTIME(CAST(a.order_created AS SIGNED )+0),'%Y %j') AS calculated_date, SUM(a.order_full_price) AS total,a.order_currency_id AS currency_id
FROM s4d38_hikashop_order AS a
WHERE a.order_type='sale'
AND a.order_created > 1480546800
AND a.order_created < 1480603675
GROUP BY calculated_date, currency_id
ORDER BY calculated_date DESC
the order_created checks are valid and correspond to what it is supposed to do.
I've also checked the modifications done to the reporting system since the 2.6.3 and no modifications are linked to the period calculations.
So as far as I understand, what you have is correct and updating won't help.
You must be missing something.
For example, you've set the statuses setting to all statuses, meaning that even cancelled, refunded and created orders will be taken into account while you might only want to take into account confirmed and shipped orders.
It could also be something relative to your timezone. The report system uses this code to calculate "today at 00:00":
$start= mktime(0, 0, 0, $dayBeginning[0], $dayBeginning[1], $dayBeginning[2]);
This takes into account the timezone of your server. But it doesn't take into account the timezone of your user in Joomla nor the timezone of the Joomla configuration. So it might be why you think that it does the same as "the last 24h" because the time difference you have between your server and your user fill in the gap between "the last 24h" and "today".