`select parseDateTimeBestEffort('01/12/2017, 18:31:44')`

It is confused by a comma - should be easy to fix.
if (day_of_month)
                        hour = hour_or_day_of_month_or_month;
                    else
                        day_of_month = hour_or_day_of_month_or_month;
                }
            }
            else if (num_digits != 0)
                return on_error("Cannot read DateTime: unexpected number of decimal digits: " + toString(num_digits), ErrorCodes::CANNOT_PARSE_DATETIME);
        }
        if (num_digits == 0)
        {
            char c = *in.position();
            
            
            if (c == ' ' || (c == 'T' && year && !has_time))
            {
                ++in.position();
            }
            else if (c == 'Z')
            {
                ++in.position();
                has_time_zone_offset = true;
            }
            else if (c == '.')  
            {
                if (!has_time)
                    return on_error("Cannot read DateTime: unexpected point symbol", ErrorCodes::CANNOT_PARSE_DATETIME);
                ++in.position();
                num_digits = readDigits(digits, sizeof(digits), in);
                if (fractional)