| Title | Stata 5: Creating date variables | |
| Author | Alan Riley, StataCorp |
You can record dates anyway you want, but there is only one technique that Stata understands, called an elapsed date. An elapsed date is the number of days from January 1, 1960. In this format,
0 means January 1, 1960
1 January 2, 1960
-1 December 31, 1959
365 December 31, 1960
Stata provides functions to convert dates into elapsed dates, formats to print elapsed dates in understandable forms, and other functions to manipulate elapsed dates.
Two functions are provided: mdy() and date().
mdy() takes three numeric arguments — month, day, year — and returns the corresponding elapsed date. For the following data,
month day year
7 11 1948
1 21 1952
11 2 1994
gen edate = mdy(month, day, year)
will produce the following data:
month day year edate
7 11 1948 -4191
1 21 1952 -2902
11 2 1994 12724
date(), on the other hand, takes two string arguments: the first is the date to be converted, and the second informs date() of the order of the month, day, and year. date() returns the corresponding elapsed date. For the following data,
datestr1 datestr2
7-11-1948 11-7-1948
11.2.1994 2.11.1994
Sept11, 1994 11Sept1994
November 13, 1995 12 November 1995
gen edate1 = date(datestr1, "mdy")
gen edate2 = date(datestr2, "dmy")
will create two variables, edate1 and edate2, that contain the same information :
datestr1 datestr2 edate1 edate2
7-11-1948 11-7-1948 -4191 -4191
11.2.1994 2.11.1994 12724 12724
Sept11, 1994 11Sept1994 12672 12672
November 13, 1995 12 November 1995 13100 13100
Once converted to the elapsed date format, you can assign Stata's %d format to the variable so that the dates are readable. Several variations are possible for displaying dates. For the following data,
edate
-4191
12724
12672
13100
format edate %d
will change the display format to
edate
11jul48
2nov94
11sep94
13nov95
format edate %dM_d,_CY
will change the display format to
edate
January 11, 1948
November 2, 1994
September 11, 1994
November 13, 1995
Several other formats are possible. For online help, type help dates in Stata, or see [U] 30 Commands for dealing with dates.