
select toDateTime64(-86400 ,9,'UTC') ==  1969-12-31 00:00:00.000000000

select toDateTime64(-86400.00 ,9,'UTC') ==  1970-01-01 00:00:00.000000000 


However, I expect both outputs to be same. 

Version affected : 22.8
{
public:
    using Monotonic = MonotonicityImpl;
    static constexpr auto name = Name::name;
    static constexpr bool to_decimal =
        std::is_same_v<Name, NameToDecimal32> || std::is_same_v<Name, NameToDecimal64>
         || std::is_same_v<Name, NameToDecimal128> || std::is_same_v<Name, NameToDecimal256>;
    static constexpr bool to_datetime64 = std::is_same_v<ToDataType, DataTypeDateTime64>;
    static constexpr bool to_string_or_fixed_string = std::is_same_v<ToDataType, DataTypeFixedString> ||
                                                      std::is_same_v<ToDataType, DataTypeString>;
    static constexpr bool to_date_or_datetime = std::is_same_v<ToDataType, DataTypeDate> ||
                                                std::is_same_v<ToDataType, DataTypeDate32> ||
                                                std::is_same_v<ToDataType, DataTypeDateTime>;
    static FunctionPtr create(ContextPtr) { return std::make_shared<FunctionConvert>(); }