> I must agree with Lester. Initially I want to only implement offsets, but
> testing Oracle, PostgreSQL and reading the standard, I think offsets are
> useless for almost everything.

I don't agree, offsets are the appropriate for all but boundary cases that can 
be handled by appropriate application logic.


> The standard (2013) does not even talk about DST, so it's very useless to
> manage time zones.
> 
> A good example for TIMESTAMP WITH TIME ZONE is a calendar application.

I agree, this is the best example.


> If I want to register a appointment in my same time zone as I'm but five
> months later, I do not want to even think that now is in DST time and then
> will be not.

Also agree, but it is the responsibility of the calendar application to 
determine the appropriate GMT offset that would apply 5 months from now, when 
creating the row.

It is not for the database to worry about DST rules, that is why the standard 
says nothing about DST.


> If my appointment will be in New York, it's the same. I do not need to
> mentally convert my time zone. The meeting in New York is in New York time
> at the time zone of that date/time.
> 
> We (persons) generally does not schedule appointments at DST start/end
> boundaries, but for the software that is more complicate.

But there are 2 type of schedules/meetings/appointments:

1- Meetings/appointments/Conf calls/Webinars that only apply to you or people 
that are all located in the same time zone, so the local time context is 
common/no mental math is required.

2 - Conf Calls/Webinars (no other events can occur in multiple time zones).  In 
these cases, we schedule (set the start time) based on a current understanding 
of what the time difference would apply to all members of the conf 
calls/webinar.  So, in this case mental math is required and can't be avoided.


> If the time 23:10:00 of a given date crosses a DST end boundary (at
> 00:00:00 clocks backwards an one hour), that time is ambiguous. So that
> should be another component of the time zone.

That is something the application needs to consider (or not*), not the database.

*MS Outlook allows me to schedule an event at 2:30am on Sunday March 11, 2018.  
That date/time is invalid -- DST comes into effect that 2am that day.

** Interesting question, do MS SQL/PostgreSQL/Oracle report "2018-03-11 
02:30:00 EST" as an invalid value?  If not, what is reported by SELECT?


> PostgreSQL chooses to convert every time to UTC in disk and converts to
> session time zone in memory. It may be entered with a region, but it's
> discarded.
> 
> Oracle implements a very good way IMO. It converts to UTC in disk but also
> store the region.

I have just reviewed the Oracle's "Datetime Datatypes and Time Zone Support" 
doc 
(https://docs.oracle.com/cd/B19306_01/server.102/b14225/ch4datetime.htm#i1006760)
 and I didn't see any mention of Oracle storing the region.


Sean


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to