It usually takes between 6 and 12 hours for a dog to give birth, but it can take up to 24 hours in some cases.