
**Describe the unexpected behaviour**
currently data format name started with `timestamp`(timestamp/timestamptz) all converted to DateTime in postgres engine, this will losing precision of millisecond and microsecond, so they should be regarded as DtateTime64 data format


**Expected behavior**

they should be regarded as DtateTime64 data format

const String & remote_table = engine_args[2]->as<ASTLiteral &>().value.safeGet<String>();
        const String & username = engine_args[3]->as<ASTLiteral &>().value.safeGet<String>();
        const String & password = engine_args[4]->as<ASTLiteral &>().value.safeGet<String>();
        String remote_table_schema;
        if (engine_args.size() == 6)
            remote_table_schema = engine_args[5]->as<ASTLiteral &>().value.safeGet<String>();
        auto pool = std::make_shared<postgres::PoolWithFailover>(
            remote_database,
            addresses,
            username,
            password,
            args.getContext()->getSettingsRef().postgresql_connection_pool_size,
            args.getContext()->getSettingsRef().postgresql_connection_pool_wait_timeout);
        return StoragePostgreSQL::create(
            args.table_id,
            std::move(pool),
            remote_table,
            args.columns,
            args.constraints,
            args.comment,
            args.getContext(),
            remote_table_schema);
    },
    {
        .source_access_type = AccessType::POSTGRES,
    });
}
}
#endif