**`timeSlots() ` is not working with DateTime64 date type at all, even when within normal range:**
```sql
SELECT timeSlots(toDateTime64('2012-01-01 12:20:00', 0, 'UTC'), 600)

Received exception from server (version 22.1.3):
Code: 43. DB::Exception: Received from localhost:9000. DB::Exception: Illegal type DateTime64(0, 'UTC') of first argument of function timeSlots. Must be DateTime.: While processing timeSlots(toDateTime64('2012-01-01 12:20:00', 0, 'UTC'), 600). (ILLEGAL_TYPE_OF_ARGUMENT)
```
if (starts && durations)
        {
            TimeSlotsImpl<UInt32>::vectorVector(starts->getData(), durations->getData(), time_slot_size, res_values, res->getOffsets());
            return res;
        }
        else if (starts && const_durations)
        {
            TimeSlotsImpl<UInt32>::vectorConstant(starts->getData(), const_durations->getValue<UInt32>(), time_slot_size, res_values, res->getOffsets());
            return res;
        }
        else if (const_starts && durations)
        {
            TimeSlotsImpl<UInt32>::constantVector(const_starts->getValue<UInt32>(), durations->getData(), time_slot_size, res_values, res->getOffsets());
            return res;
        }
        else
            throw Exception("Illegal columns " + arguments[0].column->getName()
                    + ", " + arguments[1].column->getName()
                    + ", " + arguments[2].column->getName()
                    + " of arguments of function " + getName(),
                ErrorCodes::ILLEGAL_COLUMN);
    }
};
}
void registerFunctionTimeSlots(FunctionFactory & factory)
{
    factory.registerFunction<FunctionTimeSlots>();
}
}