Seite 1 von 1

was für ein datentyp ?

Verfasst: Mittwoch 17. Juni 2009, 11:08
von Hubi
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 :)

Verfasst: Mittwoch 17. Juni 2009, 11:17
von EyDu
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.

Verfasst: Mittwoch 17. Juni 2009, 11:18
von bwbg
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

Verfasst: Mittwoch 17. Juni 2009, 12:12
von Hubi
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...