It can take between 45 minutes to two hours to donate blood. However, this factor depends on the purpose of the donation.