[python] time, DateTime a MySQLdb

EsoRimer EsoRimer na centrum.cz
Úterý Říjen 26 12:01:31 CEST 2004


Ahoj,
mám problém s časem. V pyhtnou získávám čas takto:

>> from time import strptime,strftime
>> CAS = strptime('2004-04-30 11:52:47','%Y-%m-%d %H:%M:%S')
>> print CAS
(2004, 4, 30, 11, 52, 47, 4, 121, 0)

Jeslti je CAS v localnim nebo UTC formatu opravdu nevim a
v aplikaci mi to může být jedno. Tento čas potřebuju uložit do MySQL
databáze, dělám to takto:

>> import MySQLdb
>> db = MySQLdb.connect('....)
>> cursor = db.cursor()
>> SQL = "INSERT INTO data(datum) VALUES ('%s')" % strftime('%Y%m%d%H%M%S',CAS)
>> cursor.execute(SQL)

Pak potrebuju datum z databaze ziskat a porovnat jej s datem ve formatu, ktery
vraci strftime (MySQL vrati format DateTime):

>> SQL = "SELECT datum FROM data WHERE ..."
>> cursor.execute(SQL)
>> datum = cursor.fetchone()
>> print datum
(<DateTime object for '2004-04-30 11:52:47.00' at 8170680>,)

Z formatu DateTime ziskam cas pomoci metody tuple():

>> CAS2 = datum[0].tuple()
>> print CAS2
(2004, 4, 30, 11, 52, 47, 4, 121, 1)

Výsledek (CAS2) se oproti původnímu času (CAS) liší v poslední položce
(původně to bylo 0, teď je to 1).

Zajímalo by mě, co to je, k čemu to je, a proč je to jiný? Když
pak chci porovnat CAS < CAS2, vyjde to jako pravdivé tvrzení, ale
já bych chtěl, aby CAS == CAS2.

Předem díky za odpověď, doufam že je dotaz srozumitelný, je to můj první
dotaz do konference (-:
                           EsoRimer



Další informace o konferenci Python