timestamp ist für Felder, die Änderungen protokollieren sollen und ist eigentlich nicht gedacht um ein Datum abzuspeichern.
2 und 3 ist unsinnig, da du damit alle Möglichkeiten, die dir deine Datenbank zu Verfügung stellt verbaust.
Daher: 4. Datetime
Falls du von mysql sprichst:
MySQL :: MySQL 5.1 Referenzhandbuch :: 11.3.1 Die DATETIME-, DATE- und TIMESTAMP-Typen