**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)
```
{
#define READ_DECIMAL_NUMBER(N) do { res *= common::exp10_i32(N); readDecimalNumber<N>(res, src); src += (N); num_digits -= (N); } while (false)
    while (num_digits)
    {
        switch (num_digits)
        {
            case 3: READ_DECIMAL_NUMBER(3); break;
            case 2: READ_DECIMAL_NUMBER(2); break;
            case 1: READ_DECIMAL_NUMBER(1); break;
            default: READ_DECIMAL_NUMBER(4); break;
        }
    }
#undef READ_DECIMAL_NUMBER
}
struct DateTimeSubsecondPart
{
    Int64 value;
    UInt8 digits;
};
template <typename ReturnType, bool is_us_style>
ReturnType parseDateTimeBestEffortImpl(
    time_t & res,
    ReadBuffer & in,
    const DateLUTImpl & local_time_zone,
    const DateLUTImpl & utc_time_zone,
    DateTimeSubsecondPart * fractional)
{
    auto on_error = [](const std::string & message [[maybe_unused]], int code [[maybe_unused]])
    {