> adrian.kla...@aklaver.com wrote:
> 
> Not sure how this can be handled in a totally predictable way given the 
> unpredictable ways in which datetime strings are formatted?
> 
> The only thing I can say it is it points out that when working with datetimes 
> settling on a standard format is your best defense against unpredictable 
> results.

Thank you very much, again, for your help with my seemingly endless nitpicking 
questions on this matter, Adrian. Here's the most favorable conclusion that I 
can draw:

1. A precedent has been set by The SQL Standard folks together with the 
PostgreSQL implementation and other implementations like Oracle Database. All 
this stretches back a long time—to more than four decades ago.

2. This has brought us in PG to the rules that "Table 9.26. Template Patterns 
for Date/Time Formatting", "Table 9.27. Template Pattern Modifiers for 
Date/Time Formatting", and "Usage notes for date/time formatting" set out and 
interpret.

3. The rules are hard to understand and the PG doc gives insufficient detail to 
allow the outcomes in corner cases like you just showed us to be predicted 
confidently. Some users seek to understand the rules by reading PG's source 
code.

4. Certainly, the rules set a significant parsing challenge. You hint that they 
might even prevent a complete practical solution to be implemented.

5. None of this matters when the app designer has the freedom to define how 
date-time values will be provided, as text values, by user interfaces or 
external systems. In these cases, the complexity can be controlled by edict and 
correct solutions can be painlessly implemented and tested. Not a day goes by 
that I don't have to enter a date value at a UI. And in every case, a UI gadget 
constrains my input and makes its individual fields available to the programmer 
without the need for parsing—so there's reason to be optimistic. The programmer 
can easily build the text representation of the date-time value to conform to 
the simple rules that the overall application design specified.

6. In some cases text data that's to be converted arrives in a format that 
cannot be influenced. And it might contain locutions like we've been discussing 
("zero" meaning "1 BC", unfavorable paradigms for separating tokens, and the 
like). In these cases, the diligent programmer might, just, be able to use the 
full arsenal of available tools to implement a scheme that faultlessly parses 
the input. But the likelihood of bugs seems to be pretty big.

I'll say "case closed, now" — from my side, at least.

Reply via email to