**`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)
```
#include <DataTypes/DataTypeArray.h>
#include <DataTypes/DataTypeDateTime.h>
#include <DataTypes/DataTypeDateTime64.h>
#include <Columns/ColumnArray.h>
#include <Columns/ColumnsNumber.h>
#include <Functions/IFunction.h>
#include <Functions/FunctionFactory.h>
#include <Functions/FunctionHelpers.h>
#include <Functions/extractTimeZoneFromFunctionArguments.h>
#include <IO/WriteHelpers.h>
namespace DB
{
namespace ErrorCodes
{
    extern const int NUMBER_OF_ARGUMENTS_DOESNT_MATCH;
    extern const int ILLEGAL_TYPE_OF_ARGUMENT;
    extern const int ILLEGAL_COLUMN;
}
namespace
{
/** timeSlots(StartTime, Duration)