Q:

How can I get the planes that have been more than once in the same airport in the same day? 

I have this database:
Plane({Plate(PK), PlaneName});
Flight({FlightNumber(PK), Plate(FK), From, To, Date});

And what I want to do is get the PlaneName of the planes that have been more than once in the same airport in the same day.  What I mean is , if an airplane has been twice or more in the same airport int the same day, than, it should appear.  It shouldn't matter if the plane has been there in the "FROM" or "TO" column.  
P.E:
PLATE     FLIGHTFROM      FLIGHTTO     DATE

 123          NY             CA        02/03   <---
 211          TX             AZ        02/01   <---
 111          LA             WA        01/30
 123          CA             FL        02/03   <---
 211          AZ             NY        02/01   <---

I tried this query, but it didn't work as expected:
SELECT DISTINCT p.planename
FROM planes p
JOIN (SELECT plate, from AS airport, date 
FROM flights
INTERSECT
SELECT plate, to, date
FROM flights) b ON b.plate = p.plate

A:

The solution is in two steps.  First, UNION the table to itself, so you can use FROM and TO values as separate records with the same column name.  Then, GROUP BY the results, to find entries which occur more than once:
SELECT * 
FROM (
    SELECT Plate, FlightFrom As AirPort, Date 
    FROM Flight

    UNION ALL

    SELECT Plate, FlightTo As AirPort, Date
    FROM Flight
) G
GROUP BY Plate, AirPort, Date
HAVING COUNT(*) > 1

But I worry this won't really give you the data you want.  To explain, given the sample data in the question, plate 123 was only in the CA airport one time on 2/3.  It had two flights, but it arrived at the airport and then left a little later.  That's still just one visit.  
To really know when a plate stopped at an airport twice on the same day, we need to do things a just little different.  The structure of the query is similar, but we replace the top section of the UNION with a new query to find the first FlightFrom value for each plate and day.  This is the origin, and it's the only case where FlightFrom counts as a visit to an airport.  Then we continue as before to add all of the FlightTo stops and GROUP BY the results:
SELECT * 
FROM (
    SELECT Plate, FlightFrom As AirPort, Date
    FROM (
        SELECT Plate, FlightFrom, Date
            , row_number() OVER (PARTITION BY Plate, Date ORDER BY Date ) As seq
        FROM Flight
    ) t
    WHERE seq = 1

    UNION ALL

    SELECT Plate FlightTo As AirPort, Date
    FROM Flight
) G
GROUP BY Plate, AirPort, Date
HAVING COUNT(*) > 1

