[R] RODBC & POSIX & Daylight Saving blues

Prof Brian Ripley
Thu, 11 Nov 2004 11:16:41 -0000

On Thu, 11 Nov 2004, Bernie McConnell wrote:

> Dear All,
>
> The recent improvement in RODBC to recognize datetimes in tables has
> exposed my ongoing confusion.
>
> All my data are obtained from a satellite system (Argos) which tags events
> in the GMT time zone.  Daylight saving is ignored.  To my way of thinking
> this means that
>
>    1.  twelve-o-clock means halfway through the day regardless of season,
and
>    2.  the difftime of any two dates where the time is set to
> twelve-o-clock should be an integer, regardless of which season each of the
> dates are in.
>
> I illustrate my confusion with a two-line table in an Access 2000 database
> table where the single field called 'theDate' contains the two
values:
>
> 30/07/04 12:00:00
> 30/11/04 12:00:00
>
> then I bring the datetimes into R with the following code:
>
>  > library (RODBC)
>  > theChannel <- odbcConnect("phonetagcopy", "",
"")
>  > pp <- sqlFetch(theChannel, "DateTest")
>  > odbcClose(theChannel)
>  > pp$theDate
> [1] "2004-07-30 12:00:00 GMT Daylight Time"
> [2] "2004-11-30 12:00:00 GMT Standard Time"
>  >
>  > unclass(pp$theDate) / 86400
> [1] 12629.46 12752.50
> attr(,"tzone")
> [1] ""
>  >
>  > difftime (pp$theDate[1], pp$theDate[2])
> Time difference of -123.0417 days
>
> It appears that sqlFetch has (in this case wrongly) assumed that my
> datetimes are corrected for Daylight Saving.  How can I persuade it to
> accept that all my datetimes are in straight GMT?

All date-time conversions in R by default occurs in the current timezone.
If you set it to GMT for the duration of the sqlFetch call, it should do
as you intended (but had not told R, which is not clairvoyant).

--
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272860 (secr)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595