[PyGreSQL] DATETIME fields and DateTime objects in pgdb
Christoph Zwerschke
cito at online.de
Fri Jun 2 13:16:06 EDT 2006
Hello Mario,
thanks for the feedback. We may consider some of this in version 3.9.
> pgdb returns DATETIME data as strings. in the case switch for DATETIME
> pgdb does not make any attempt to convert it from the representing
> string into a DateTime object. the result returned in fetch(one/all)
> does not hold any information about the original type in the database
> (indistinguishable from STRING).
I think the main problem here is that - as you already noticed - the
date/time format can vary in PostGreSQL, depending on how you set
datestyle. For instance, I have usually set datestyle=German, so your
patch would not work. And datestyle can probably even altered during one
session. I'm currently not sure how to get a universally valid solution.
Maybe somebody will come up with a good idea. One possibility would be
to add a PyGreSQL configuration parameter that tells PyGreSQL if and how
DateTimes should be treated, and it is in the responsibility of the
application to set it appropriately.
Also, if we really want to return the type, then we should not only
support absolute times, but also time delta types, and we should
properly handle time zones and fractions of seconds in timestamps (your
patch rounds all datetime types to seconds).
By the way, your patch changes a check for StringType to StringTypes
(i.e. including unicode). I think this has been already changed in
PyGreSQL since 3.6 or so. Unicode strings are automatically encoded to
UTF-8 (actually, I think this is also not quite correct, since the
server could have been configure with a different encoding).
You also write that the website is sometimes down and thus PyGreSQL not
available. I did not experience this in the past, but a solution would
be to put PyGreSQL in the cheese shop (PyPI) as well. D'Arcy, what do
you think about that?
-- Christoph
More information about the PyGreSQL
mailing list