[fpc-devel] MinDateTime is 100 AD ?

Vincent Snijders vsnijders at quicknet.nl
Mon Jul 2 22:32:16 CEST 2007


On Mon, 02 Jul 2007 22:21:22 +0200
Joost van der Sluis <joost at cnoc.nl> wrote:

> On Mon, 2007-07-02 at 22:07 +0200, Michael Van Canneyt wrote:
> > 
> > On Mon, 2 Jul 2007, Joost van der Sluis wrote:
> > 
> > > On Mon, 2007-07-02 at 21:48 +0200, Michael Van Canneyt wrote:
> > > > 
> > > > On Mon, 2 Jul 2007, Joost van der Sluis wrote:
> > > > 
> > > > > Hi all,
> > > > > 
> > > > > In sysstrh.inc MinDateTime is defined as follows:
> > > > > 
> > > > >   { For floattodatetime }
> > > > >   MinDateTime: TDateTime = -657434.0;     { 01/01/0100 12:00:00.000 AM }
> > > > >   MaxDateTime: TDateTime =  2958465.99999;{ 12/31/9999 11:59:59.999 PM }
> > > > > 
> > > > > Why is that? Datetimes before 100AD works perfectly. Can I change it to
> > > > > 01/01/01 ? (Why does this restriction exist at all?!?)
> > > > 
> > > > Delphi compatibility, probably. As far as I know, it's not used ?
> > > 
> > > It is used in cvarutil.VariantToDate and in sysstr.FloatTodateTime. 
> > 
> > Probably to avoid a conversion error ?
> > Maybe some Microsoft thing, that's where TDateTime comes from ?
> > 
> > The reason is probably lost in the mists of time :-)
> 
> I'll change it to 01/01/01. When it raises problems on windows, the db-
> testsuite will detect that. 

Just an idea, what happens if you assign '01/01/01' (the string) to a variant and then assign the variant to a tdatetime?

Is it a date from the year 1901 or not?

Vincent



More information about the fpc-devel mailing list