Deals with an empty string as NULL and Supports ISO8601 format datetime