Ignoring AM abbreviation leads to wrong processing the 12th hour.

**Bug reproducing**
```sql
SELECT
    parseDateTimeBestEffort('2020-02-01 12:10:00 AM') AS am,
    parseDateTimeBestEffort('2020-02-01 12:10:00 PM') AS pm

┌──────────────────am─┬──────────────────pm─┐
│ 2020-02-01 12:10:00 │ 2020-02-01 12:10:00 │
└─────────────────────┴─────────────────────┘
```

**Expected behavior**
```sql
┌──────────────────am─┬──────────────────pm─┐
│ 2020-02-01 00:10:00 │ 2020-02-01 12:10:00 │
└─────────────────────┴─────────────────────┘
```
time_zone_offset_negative = true;
                num_digits = readDigits(digits, sizeof(digits), in);
                if (num_digits == 4)
                {
                    readDecimalNumber<2>(time_zone_offset_hour, digits);
                    readDecimalNumber<2>(time_zone_offset_minute, digits + 2);
                }
                else if (num_digits == 3)
                {
                    readDecimalNumber<1>(time_zone_offset_hour, digits);
                    readDecimalNumber<2>(time_zone_offset_minute, digits + 1);
                }
                else if (num_digits == 2)
                {
                    readDecimalNumber<2>(time_zone_offset_hour, digits);
                }
                else if (num_digits == 1)
                {
                    readDecimalNumber<1>(time_zone_offset_hour, digits);
                }
                else
                    return on_error("Cannot read DateTime: unexpected number of decimal digits for time zone offset: " + toString(num_digits), ErrorCodes::CANNOT_PARSE_DATETIME);
                if (num_digits < 3 && checkChar(':', in))
                {
                    num_digits = readDigits(digits, sizeof(digits), in);
                    if (num_digits == 2)
                    {
                        readDecimalNumber<2>(time_zone_offset_minute, digits);
                    }
                    else if (num_digits == 1)