was für ein datentyp ?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Hubi
User
Beiträge: 17
Registriert: Mittwoch 17. Juni 2009, 10:58

Hi @ all...

Ich habe mal ne kurze frage:

ich mache volgendes: ich lese mittels python aus einer ael_db mittels eines SQL-Strings daten aus.

Code: Alles auswählen

def delete_list(sql, table):
    r = FBDPCommon.get_result_in_list(ael.dbsql(sql))
    for i in r:
        e = table[i]
        print e.historical_day
        date = e.historical_day
        print date


dieser Methode übergebe ich einen simplen sql-string.

Aus dem Ergebniss, möchte ich jetzt den wert, welcher in der tabelle unter "historical_day" vorhanden ist, erhalten. Dies klappt auch ganz gut.. es printet mir auch schön raus: "01.12.2008" usw.
jetzt mein problem: was für ein datentyp ist der rückgabewert (also 01.12.2008) ich möchte nämlich prüfen ob der wert kleiner als 31.12.2008 ist... wäre es ein ael_date welches ich zurückbekommen, dann könnte ich ja mittels "to_time()" funktion... geht jedoch nicht... kein ael_date
ein string ist es aber auch nicht (den ich kann ihn nicht in ein integer verwandeln)

könnt ihr mir allenfalls weiterhelfen ? wie prüfe ich am besten ob das erhaltene Datum kleiner als der 31.12.2008 ist.. ?

Besten Dank

(sorry... bin noch ein "nooooob" mein erster "python" auftrag :)
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Nur weil du etwas nicht in einen Integer konvertieren kannst, kannst du nicht daraus schließen, dass es kein String ist. Woher sollte der Interpreter denn wissen, dass es sich bei dem Inhalt des Strings um ein Datum handelt?

Den Typ herausfinden kannst du mit der type-Funktion.

Wenn es ein String ist, kannst du ihn einfach mittels split-Methode an den Punkten teilen und aus Jahr, Monat und Tag jeweils einen Integer machen. Daraus machst du ein Tupel (Jahr, Monat, Tag). Diese kannst du dann mit < vergleichen.

Besser: du schaust dir das "datetime"-Modul an, insbesondere die strptime-Funktion.
Zuletzt geändert von EyDu am Mittwoch 17. Juni 2009, 11:18, insgesamt 1-mal geändert.
Das Leben ist wie ein Tennisball.
Benutzeravatar
bwbg
User
Beiträge: 407
Registriert: Mittwoch 23. Januar 2008, 13:35

Am einfachsten findest du den Datentyp mit der type-Funktion:

Code: Alles auswählen

print type(e.historical_date)
Das datetime-Modul ist auch ein guter Einstieg für Datums- und Zeitoperationen.

Grüße... Heiko
"Du bist der Messias! Und ich muss es wissen, denn ich bin schon einigen gefolgt!"
Hubi
User
Beiträge: 17
Registriert: Mittwoch 17. Juni 2009, 10:58

Wow... grosses Kompliment an euch...

Kam vom Mittagessen zurück und siehe da... schon 2 sehr hilfreiche antworten.

Ja wie bereits gesagt "bin ganz neu in python" :)

Besten Dank... werde es jetzt gleich probieren...
Antworten