Often the very mention of dates implies mess and complication, but
1. The format you give is just your choice and gets in the way of easy
calculation.
2. Assuming that you want a sample from a uniform distribution on
these dates, that looks like integers from the corresponding Stata
date interval
. di date("19801201", "YMD")
7640
. di date("20061231", "YMD")
17166
. di 17166 - 7640
9526
. set obs 1000
obs was 0, now 1000
. gen mysample = 7640 + floor(9527 * runiform())
A rough graphical test:
. quantile mysample
. format mysample %td
You can use -ceil()- if you like in a similar but not identical
recipe. The difference is only a little bit. (All puns should be
considered intentional.)
You will want a different format. See -help dates and times-.
Nick
On Wed, Jan 16, 2013 at 4:46 PM, sasso, simone <sasso@merit.unu.edu> wrote:
> I am currently working on a large dataset and I need to generate a random
> date (in the format “yyyymmdd”) for each observation. These random dates
> must be between the 1 December 1980 (“19801201”) and 31 December 2006
> (“20061231”).
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/faqs/resources/statalist-faq/
* http://www.ats.ucla.edu/stat/stata/