[DB-SIG] How to use DATETIME objects (and other Type Objects)?

Marc Colosimo mcolosimo at mitre.org
Fri Feb 13 10:19:45 EST 2004


On Feb 12, 2004, at 10:32 AM, Marc Colosimo wrote:

> Now that I understand how to use the executeXXX(), I would like to 
> know how to pass in specific type objects to executeXXX() and how to 
> receive them back from fetchXXX().
>
> For example, if I have a table with a DATETIME format how can I send 
> it in the correct format to executeXXX()? Or if my table has numberic 
> column, how do I use NUMBER Type object to specify this?
>
>
  Okay, it must be a slow brain week for me. After looking at some 
driver code I see that I completely missed the point about what NUMBER, 
DATETIME, etc are used for.

My basic question was if I had a real or numeric field in my database, 
how do I tell the driver that it needs to send that. The answer is as 
before, let the drive handle that:

import pgdb

cursor.execute("INSERT INTO mytable (my_id, my_real, my_date) VALUES 
(%s, %s, %s)",
                             (2, 10.2, "now"))

cursor.execute("SELECT my_real, my_date) FROM mytable WHERE my_id = 2")

fetchedL = cursor.fetchone()

print fetchedL

prints this
[10.199999999999999, '2004-02-13 10:05:57.343744']

but,

print fetchedL[0]

prints,

10.2

Also,

if type(clist[0]) == pgdb.FLOAT:
     print "First argument is a pgdb FLOAT"

if type(clist[1]) == float:
     print "First argument is a python float"

Only print's that this is a python float.

When would one use something like pgdb.FLOAT?

Marc





More information about the DB-SIG mailing list