Tussen 16-04-2011 16:00 en 15-04-2011 00:00 is er een dag en 16 uur, dus je DATEDIFF(...)+1
keert (correct) 1+1 dagen terug.
Het probleem hier is de mismatch tussen het tijdstip waarop de gast arriveert/vertrekt (rond het middaguur) en het tijdstip waarop het tarief verandert (om middernacht).
U moet uw vereisten controleren, maar waarschijnlijk kunt u de laatste gedeeltelijke dag negeren en de gast laten "vertrekken" op 15-04-2011 23:59:59 voor doeleinden van tariefberekening. Laat de gast op dezelfde manier "aankomen" op 14-04-2011 00:00:00. De extra uren op de eerste dag compenseren de ontbrekende uren van de laatste dag.