Pomiędzy 16.04.2011 16:00 a 15.04.2011 00:00 jest jeden dzień i 16 godzin, dlatego Twój DATEDIFF(...)+1
zwraca (poprawnie) 1+1 dni.
Problem polega na rozbieżności między godziną przyjazdu/wyjścia gościa (około południa) a czasem zmiany ceny (o północy).
Musisz sprawdzić swoje wymagania, ale prawdopodobnie możesz zignorować ostatni niepełny dzień i poprosić gościa o „wyjście” o godzinie 2011-04-15 23:59:59 w celu obliczenia stawki. W ten sam sposób poproś gościa o "przybycie" o godzinie 2011-04-14 00:00:00. Dodatkowe godziny pierwszego dnia zrekompensują brakujące godziny ostatniego dnia.