Ich habe in meiner SQLite Tabelle die Spalte "dt" mit dem Datum und "time" mit der Uhrzeit.
Damit ich meine Werte nun in einem Chart darstellen kann, muss ich ja Datum und Uhrzeit wieder zusammen in eine Variable stecken.
Nach dem Auslesen sind die in row[0] und row[1].
Datetime + Time wieder zusammenfügen
Danke, das hab ich probiert mit:
Als Fehlermeldung erhalte ich dann
"AttributeError: 'module' object has no attribute 'combine'
wenn ich schreibe
Erhalte ich die Meldung
"TypeError: combine()argument 1 must be datetime.date, not unicode
Wenn ich mir row[0] und row[1] ausgeben lasse erhalte ich folgendes:
u'2018-11-20'
und
u'17:40'
Code: Alles auswählen
combined = datetime.combine(row[0],row[1])
"AttributeError: 'module' object has no attribute 'combine'
wenn ich schreibe
Code: Alles auswählen
combined = datetime.datetime.combine(row[0],row[1])
"TypeError: combine()argument 1 must be datetime.date, not unicode
Wenn ich mir row[0] und row[1] ausgeben lasse erhalte ich folgendes:
u'2018-11-20'
und
u'17:40'
Du hast behauptet du hast Zeit und Datum. Das sind Strings mit Zeit und Datum. Die kannst du zusammenkopieren und mit datetime.datetime.strptime parsen.
Noch besser waere aber, in sqlite gleich einen gemeinsamen timestamp zu speichern, der dann auch schon gleich als fertiges datetime.datetime-Objekt rauskommt, statt das so umstaendlich zusammen zu roedeln.
Noch besser waere aber, in sqlite gleich einen gemeinsamen timestamp zu speichern, der dann auch schon gleich als fertiges datetime.datetime-Objekt rauskommt, statt das so umstaendlich zusammen zu roedeln.
Dann hat Deine Datenbanktabelle einen Designfehler. Man sollte nie Datum und Uhrzeit in zwei getrennte Spalten packen. Warum ist das so? Ändere Deine Tabelle. `dt` ist ein schlechter Name für eine Tabellenspalte, weil sie eine kryptische Abkürzung ist.
- DeaD_EyE
- User
- Beiträge: 1021
- Registriert: Sonntag 19. September 2010, 13:45
- Wohnort: Hagen
- Kontaktdaten:
Seit Python 3.7 hat datetime einen den alternativen Konstruktor fromisoformat.
Wenn du andere Module wie z.B. pytz richtig anwendest, sind auch die Zeizoneninformationen mit enthalten.
Ich hab mich mittlerweile drauf eingestellt generell Datum+Urhzeit im ISO8601 Format abzuspeichern.
Damit kommt jede Sprache und jede Datenbank mit klar. Außerdem ist es ein internationaler Standard.
Code: Alles auswählen
In [1]: import datetime
In [2]: now = datetime.datetime.now()
In [3]: now
Out[3]: datetime.datetime(2018, 11, 21, 9, 54, 47, 836854)
In [4]: iso8601 = now.isoformat()
In [5]: iso8601
Out[5]: '2018-11-21T09:54:47.836854'
In [6]: datetime.datetime.fromisoformat(iso8601)
Out[6]: datetime.datetime(2018, 11, 21, 9, 54, 47, 836854)
In [7]:
Ich hab mich mittlerweile drauf eingestellt generell Datum+Urhzeit im ISO8601 Format abzuspeichern.
Damit kommt jede Sprache und jede Datenbank mit klar. Außerdem ist es ein internationaler Standard.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
- __blackjack__
- User
- Beiträge: 13116
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@DeaD_EyE: Standardformate sind allgemein eine gute Idee aber bei Datenbanken würde ich doch die Formate nutzen, die von der DB angeboten werden. Und SQL kennt die Typen DATE, TIME und TIMESTAMP. Damit sollte also auch jede SQL-Datenbank und Programmiersprache klar kommen, die eine Anbindung an SQL-Datenbanken bietet. Mit dem Bonus, dass die spezifischen Typen in der Regel effizienter gespeichert werden können als Zeichenketten mit der ISO-Darstellung, und es auch Funktionen auf Datenbankseite gibt, die es erlauben mit Datums- und Zeitangaben in Abfragen zu operieren. Was es zum Beispiel unnötig macht Datum und Zeit in verschiedenen Spalten zu speichern, weil man in Abfragen auch bei einer TIMESTAMP-Spalte auf die einzelnen Komponenten zugreifen kann.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman