Возможны 3 варианта:
David will stay the night there if he misses the last train - реальное условное
David would stay the night there if he missed the last train - нереальное условное 2 типа
David would have stayed the night there if he had missed the last train - нереальное условное 3 типа.
Второе и третье переводится одинаково: Если бы Давид опоздал на поезд, он бы остался на ночь там.