Every piece of data you will ever encounter can be stored using
numeric or character types. Technically, you could even store numbers
as character types. Just because you can do so, however, does not
mean you should. Consider, for example, storing a date in the
database. You could store that value as a Unix-style
BIGINT or as a combination of several columns for
the day, month, and year. How do you look for rows with a date value
greater than two days after a specific date? Either you calculate the
numeric representation of that date or employ a complex operation for
a simple query mixing day, month, and year values.
Isn’t all of that a major pain?
Wouldn’t it be nice if MySQL handled all of these
issues for you? In fact, MySQL does. It provides several complex data
types to help with abstract common concepts. It supports the concept
of dates through the
data type. Other such data types