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 │
└──────────────────────────────────────────────┘
```
{
private:
    friend class DateLUT;
    explicit DateLUTImpl(const std::string & time_zone);
    DateLUTImpl(const DateLUTImpl &) = delete;
    DateLUTImpl & operator=(const DateLUTImpl &) = delete;
    DateLUTImpl(const DateLUTImpl &&) = delete;
    DateLUTImpl & operator=(const DateLUTImpl &&) = delete;
    
    
    
    STRONG_TYPEDEF(UInt32, LUTIndex)
    template <typename T>
    friend inline LUTIndex operator+(const LUTIndex & index, const T v)
    {
        return LUTIndex{(index.toUnderType() + UInt32(v)) & date_lut_mask};
    }
    template <typename T>
    friend inline LUTIndex operator+(const T v, const LUTIndex & index)
    {
        return LUTIndex{(v + index.toUnderType()) & date_lut_mask};
    }
    friend inline LUTIndex operator+(const LUTIndex & index, const LUTIndex & v)
    {
        return LUTIndex{(index.toUnderType() + v.toUnderType()) & date_lut_mask};
    }
    template <typename T>
    friend inline LUTIndex operator-(const LUTIndex & index, const T v)