There are
929 mi
from San Antonio, TX to Hannibal, MO
That's the driving distance. It would take 17 hours 19 mins to go from San Antonio, Texas to Hannibal, Missouri.
The flight distance (direct flight from San Antonio, TX to Hannibal, MO) is 817.67 mi.
929 mi = 1,495.54 kms