/// <include file='docs/MyCatDataReader.xml' path='docs/GetDateTime/*'/>
        public override DateTime GetDateTime(int i)
        {
            IMyCatValue   val = GetFieldValue(i, true);
            MyCatDateTime dt;

            if (val is MyCatDateTime)
            {
                dt = (MyCatDateTime)val;
            }
            else
            {
                // we need to do this because functions like date_add return string
                string s = GetString(i);
                dt = MyCatDateTime.Parse(s);
            }

            dt.TimezoneOffset = driver.timeZoneOffset;
            if (connection.Settings.ConvertZeroDateTime && !dt.IsValidDateTime)
            {
                return(DateTime.MinValue);
            }
            else
            {
                return(dt.GetDateTime());
            }
        }