Statalist


[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

Re: st: Converting date


From   wgould@stata.com (William Gould, StataCorp LP)
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: Converting date
Date   Mon, 17 Mar 2008 10:04:08 -0500

Leslie <cybergeekn@comcast.net> asked, 

> I am having a really hard time converting birthdates (19320904, long
> variable type) into an elpased date that STATA uses.

There are two approaches:  (1) either you take the number 19320904 and 
convert make three numbers from it, 1932, 9, and 04, and convert those, 
or (2) you take the number 19320904, convert it to a string "19320904", 
and convert that.

Here's solution 1:

        . gen year       = floor(value/10000)
        . gen month      = floor(value/100) - year*100
        . gen day        = value - year*10000 - month*100
        . gen long date  = mdy(month, day, year)
        . format date %td
        . drop month day year

Here's solution 2:

        . gen str new   = string(value, "%10.0g")
        . gen long date = date(new, "YMD") 
        . format date %td
        . drop new 

Concerning this last, we had to specify optinal second argument "%10.0g" 
with function string() so that 19320904 became "19320904" and not 
"1.93e+07".  

-- Bill
wgould@stata.com
*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/



© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index