- The difference resides in the way each field is stored in the database.
- date
- The date field is an ISO 8601 standard date. It is useful if you want to store incomplete dates, like year and month only. It is stored in the database as varchar field.
- datetime
- It is use for complete dates. It is stored in regular datetime field of the database.
- datestamp
- datestamp is the unix timestamp. It is discouraged to use this in favor of datetime.