DateDiff() function does not support DateTime64:
```
SELECT dateDiff('second', toDateTime64('1927-01-01 00:00:00', 0, 'UTC'), toDateTime64('1927-01-01 00:00:00', 0, 'UTC'))

0 rows in set. Elapsed: 0.024 sec. 

Received exception from server (version 21.5.1):
Code: 44. DB::Exception: Received from localhost:9000. DB::Exception: Illegal column for first argument of function dateDiff, must be Date or DateTime: While processing dateDiff('second', toDateTime64('1927-01-01 00:00:00', 0, 'UTC'), toDateTime64('1927-01-01 00:00:00', 0, 'UTC')). 
```
const ColumnVector<T1> & x, const ColumnVector<T2> & y,
        const DateLUTImpl & timezone_x, const DateLUTImpl & timezone_y,
        ColumnInt64::Container & result) const
    {
        const auto & x_data = x.getData();
        const auto & y_data = y.getData();
        for (size_t i = 0, size = x.size(); i < size; ++i)
            result[i] = calculate<Transform>(x_data[i], y_data[i], timezone_x, timezone_y);
    }
    template <typename Transform, typename T1, typename T2>
    void vectorConstant(
        const ColumnVector<T1> & x, T2 y,
        const DateLUTImpl & timezone_x, const DateLUTImpl & timezone_y,
        ColumnInt64::Container & result) const
    {
        const auto & x_data = x.getData();
        for (size_t i = 0, size = x.size(); i < size; ++i)
            result[i] = calculate<Transform>(x_data[i], y, timezone_x, timezone_y);
    }
    template <typename Transform, typename T1, typename T2>
    void constantVector(