Your major question I leave to others, although
I think that part of the answer is that you are
confusing format -- how a variable is presented
-- with value -- how it is held. Accidentally
you expose a detail over which I can explain the
error of your ways.
The loop
foreach var in varlist datevar1 {
format datevar1 %dCY-N-D
}
would work, but for the wrong reason. You
probably meant
foreach var of varlist datevar1 {
format datevar1 %dCY-N-D
}
which would work, but does nothing that
format datevar1 %dCY-N-D
would not do directly.
There are two reasons for this.
1. A loop over one thing can be replaced
by that one thing, without scaffolding.
2. You set up a looping macro `var', but
never use it.
foreadh var in varlist datevar1 {
format datevar1 %dCY-N-D
}
would go round the loop twice, once
setting `var' to "varlist" and once
setting `var' to "datevar1". But neither
time does Stata do anything with your
`var'. You just get the format you
asked for, twice.
On other occasions, that could be a bug.
Nick
[email protected]
Bednar, Paul
>
> When I import a date variable using odbc Stata changes the format from
> yyyy-mm-dd to mmddyyyy--for example, 2002-07-01 to 01Jul2002.
>
> I need to convert the date variable back to yyyy-mm-dd to be in the
> proper database format. I do this in the following manner
> (variable is
> datevar1):
>
> foreach var in varlist datevar1 {
> format datevar1 %dCY-N-D
> }
>
> Listing datevar1 via the command line displays the data in the proper
> yyyy-mm-dd format. However, using odbc I get an "incorrect
> date value:
> '1522'" error message, as the date variable somehow has been converted
> to a number (date should be 2002-07-01).
>
*
* 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/