To continue reading for free, register below or login
To read more you must become a member of SearchOracle.com
');
// -->

Among the many popular database management systems in use today, there is
more diversity in the datatypes used for dates and times than any other type of data.
DATE datatypes are used to store dates. These are the dates we are all
familiar with, such as 2007-02-28, 1991-09-09, etc. This particular format is also one of
the International Standards Organization (ISO) standard formats for representing dates.
(Yes, there are others. For example, 2007-10 is a valid ISO date format.) For the
moment, though, we shall discuss not the displayed formats of dates and times, but
just what they can contain.
Some databases offer DATE datatypes, others do not. For example, Microsoft SQL Server
has no DATE datatype, but does have DATETIME and SMALLDATETIME. As these datatype
names suggest, they include a time portion, which is accurate to 3 milliseconds.
The difference between them is the range of valid dates that they support.
DATETIME covers the years 1753 through 9999, while SMALLDATETIME covers only 1900
through June 6, 2079. When you insert a value such as '2005-05-05' into a DATETIME
or SMALLDATETIME column, the time portion is automatically set to zero (midnight).
Oracle, on the other hand, uses the DATE datatype to include both a date and a time.
MySQL, meanwhile, has separate DATE and TIME datatypes, as well as DATETIME.
Timestamps can be datetimes, or something else entirely. The standard SQL
CURRENT_TIMESTAMP function is simply the current datetime value, just as CURRENT_DATE
is the current date value, so in that sense, the timestamp is a datetime.
But timestamps can also represent other values. Many PHP programmers routinely
use the Unix epoch time as a
timestamp, storing the value in an INTEGER column. The Unix epoch time is simply
the number of seconds elapsed since midnight on January 1, 1970. The advantages of
this format for storing datetimes include portability across different platforms,
and ease of calculating differences (in seconds). Disadvantages include not being
able to recognize the actual date of a value like 1189370937, as well as the
Year 2038 problem.
And to totally confuse matters, Microsoft SQL Server also has a TIMESTAMP
datatype, but this has nothing to do with actual dates and times.
Your original question asked about date formats. As you might guess, there
is even more diversity in how the various database systems can display
dates and times than in the datatypes used to store them. Oracle uses
the TO_CHAR function, MySQL the DATE_FORMAT function, SQL Server the CONVERT
function, and each has a bewildering array of options. At this point, your
best bet is to dive into your SQL Reference Manual and start testing.
|