
**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

T & tx, const String & postgres_table_name, const String & query, bool use_nulls, bool only_names_and_types)
{
    auto columns = NamesAndTypes();
    try
    {
        std::set<size_t> recheck_arrays_indexes;
        {
            auto stream{pqxx::stream_from::query(tx, query)};
            size_t i = 0;
            auto recheck_array = [&]() { recheck_arrays_indexes.insert(i); };
            if (only_names_and_types)
            {
                std::tuple<std::string, std::string> row;
                while (stream >> row)
                {
                    columns.push_back(NameAndTypePair(std::get<0>(row), convertPostgreSQLDataType(std::get<1>(row), recheck_array)));
                    ++i;
                }