[eluser]Mirage[/eluser]
I'd say you need to check the end_date before you use the from_array method. If the 'end_date' field is empty, set it to NULL instead of the empty string or remove the key altogether.
If setting to NULL works you could probably also add a rule (empty_to_null) in the course model that does this for you transparently.