**Describe the issue**
```
milovidov-desktop :) SELECT parseDateTimeBestEffort('20220101-010203')

SELECT parseDateTimeBestEffort('20220101-010203')


0 rows in set. Elapsed: 0.153 sec. 

Received exception:
Code: 41. DB::Exception: Cannot read DateTime: unexpected number of decimal digits for time zone offset: 6: While processing parseDateTimeBestEffort('20220101-010203'). (CANNOT_PARSE_DATETIME)
```
{
    size_t num_chars = 0;
    while (!in.eof() && isAlphaASCII(*in.position()) && num_chars < max_chars)
    {
        res[num_chars] = *in.position();
        ++num_chars;
        ++in.position();
    }
    return num_chars;
}
#if defined(__PPC__)
#if !defined(__clang__)
#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
#endif
#endif
template <size_t digit, size_t power_of_ten, typename T>
inline void readDecimalNumberImpl(T & res, const char * src)
{
    res += src[digit] * power_of_ten;
    if constexpr (digit > 0)
        readDecimalNumberImpl<digit - 1, power_of_ten * 10>(res, src);
}
template <size_t num_digits, typename T>
inline void readDecimalNumber(T & res, const char * src)
{
    readDecimalNumberImpl<num_digits - 1, 1>(res, src);
}
template <typename T>
inline void readDecimalNumber(T & res, size_t num_digits, const char * src)