Reproduces on master.

```
SELECT toDateTime64('2021-03-22', 3, 'Asia/Tehran')

Query id: 26f7c373-f473-4209-8976-6ada79a8627f

┌─toDateTime64('2021-03-22', 3, 'Asia/Tehran')─┐
│                      2157-04-28 06:28:16.000 │
└──────────────────────────────────────────────┘
```
{
        if (days == 1)
            return toDate(d);
        return lut[toLUTIndex(ExtendedDayNum(d / days * days))].date;
    }
    inline Time toStartOfHourInterval(Time t, UInt64 hours) const
    {
        if (hours == 1)
            return toStartOfHour(t);
        /** We will round the hour number since the midnight.
          * It may split the day into non-equal intervals.
          * For example, if we will round to 11-hour interval,
          * the day will be split to the intervals 00:00:00..10:59:59, 11:00:00..21:59:59, 22:00:00..23:59:59.
          * In case of daylight saving time or other transitions,
          * the intervals can be shortened or prolonged to the amount of transition.
          */
        UInt64 seconds = hours * 3600;
        const LUTIndex index = findIndex(t);
        const Values & values = lut[index];
        Time time = t - values.date;
        if (time >= values.time_at_offset_change())
        {