Re: Scaled or Granular Dates

From: --CELKO-- <joe.celko_at_northface.edu>
Date: 8 Jan 2004 09:33:25 -0800
Message-ID: <a264e7ea.0401080933.6c944b8b_at_posting.google.com>


>> All Dates in Java, and I believe in most all areas of computing are
measured as distinct points in time to some predefined granularity. <<

Which is clearly wrong. Einstein told us that to exist exist an entity must have a duration. Heck, as far back as Zeno, we know that a continuum like time is defined by the property of always being divisible (i.e. no discrete points).

>> Somebody might say, that the latter dates are really periods that
should be recorded as two dates: They are periods but then again, aren't all date/times. There is no way of recording an instant in time as there is always a higher level of accuracy that exists, but cannot be measured. <<

Yep, me and most of the people doing work with temporal databases. The ISO model for time is a half-open interval with a known starting point. The half-open intervals have a lot of nice properties like closure under concatenation, etc.

>> 1. Is this old ground that has been covered before, written about
in many theses, and thrown away as a bad idea? If so, can anyone point me to any reading on this subject. <<

Look up the Snodgrass book from Morgan-Kaufmann for SQL code for the interval model.

>> 2. I would like to create my own Java object to handle granular
dates as I describe above. What would be the best way to make them persist in a database? Should I just use a long integer with a special format to denote the value and scale? Any recommendations? <<

Pairs of TIMESTAMPs and BETWEEN predicates for queries. Maybe another column to control grandularity. Granularity is part of the DDL in SQL-99 temporal datatypes but you will probably not find it in your database. Received on Thu Jan 08 2004 - 18:33:25 CET

Original text of this message