2016-10-29 3 views
-1

Ich habe den folgenden Code:Python Datum Spiel mit MySQL

fixtures = StraightredFixture.objects.filter(soccerseason=soccerseason,fixturematchday=fixturematchday).order_by('fixturedate') 

firstGameTime = str(fixtures[0].fixturedate).split() 
currentTime = str(datetime.now().strftime("%Y-%m-%d %H:%M:%S")).split() 


if firstGameTime >= currentTime: 
    selectteams = True 
else: 
    selectteams = False 

Was auch immer das Datum der firstGameTime ist es immer False zurück. Zwei Beispiele sind wie folgt:

firstGameTime = ['2010-10-28', '11:30:00+00:00'] 
currentTime = ['2016-10-29', '10:51:50'] 
selectteams = False 

firstGameTime = ['2010-10-30', '11:30:00+00:00'] 
currentTime = ['2016-10-29', '10:53:16'] 
selectteams = False 

Im zweiten Beispiel würde ich erwarten, dass es richtig zu sagen, wie die firstGameTime der 30. ist, während die current der 29. ist.

Ich habe das Gefühl, es ist mit dem + 00: 00 Teil zu tun, aber ich bin ratlos, wie man das beheben kann. Jede Hilfe wäre willkommen, vielen Dank, Alan.

+0

Warum Sie diese Listen von Zeichenketten zum Vergleich, anstatt halten sie als Datetimes konvertieren? –

+0

Lesen Sie es online irgendwo als eine Lösung. Ich brauche das nicht, daher wird jede Lösung geschätzt. –

Antwort

1

Datumswerte sind direkt vergleichbar. Es besteht keine Notwendigkeit, in Listen von Zeichenfolgen zu konvertieren.

firstGameTime = fixtures[0].fixturedate 
currentTime = datetime.now() 

if firstGameTime >= currentTime: 
    ... 

Da dies jedoch ist Django Sie dies in der Abfrage direkt tun könnte:

selectteams = StraightredFixture.objects.filter(
    soccerseason=soccerseason, 
    fixturematchday=fixturematchday 
    fixturedate__gte=datetime.now() 
).exists() 
+0

Leider erhalte ich den folgenden Fehler: Offset-naive und Offset-bewusste Datumsangaben können nicht verglichen werden. –

+0

Mit Ihrer Antwort und dieser Hilfe unter dem folgenden Link: http://StackOverflow.com/Questions/15307623/cant-Compare-Naive-and-Aware-DateTime-Now-Challenge-Datetime-end habe ich die Lösung. Vielen Dank für deine Hilfe. Könnte die Person, die mich mit der Frage abgelehnt hat, mich kontaktieren und mir helfen, den Downvote für zukünftige Referenz zu verstehen. –