There are
902 mi
from Sugar Land, TX to Hannibal, MO
That's the driving distance. It would take 16 hours 54 mins to go from Sugar Land, Texas to Hannibal, Missouri.
The flight distance (direct flight from Sugar Land, TX to Hannibal, MO) is 737.95 mi.
902 mi = 1,451.64 kms