(Not a Teacher)
I'd go for #2, with an 'a' added before 'fever'.
"David has had a fever for the past two days."
I don't know if #1 is wrong grammatically but it sounds excessively verbose, and I don't think I'd ever find myself expressing it that way.
- For Teachers