Ich verwende Python, um eine In-Memory-SQLite3-Datenbank mit einer Zeitstempelspalte zu erstellen. Wenn ich in meiner Abfrage min () oder max () in dieser Spalte verwende, wird die Spalte eher als Zeichenfolge als als Python DateTime -Objekt zurückgegeben. Ich habe eine vorherige Frage zu Stackoverflow gelesen, die eine Lösung für normale Auswahlanweisungen lieferte, aber nicht funktioniert, wenn max () oder min () verwendet wird. Hier ist ein Beispiel: < /p>
>>> db = sqlite3.connect(':memory:', detect_types=sqlite3.PARSE_DECLTYPES)
>>> c = db.cursor()
>>> c.execute('create table foo (bar integer, baz timestamp)')
>>> c.execute('insert into foo values(?, ?)', (23, datetime.datetime.now()))
>>> c.execute('select * from foo')
>>> c.fetchall()
[(23, datetime.datetime(2010, 12, 14, 1, 15, 54, 685575))]
>>> c.execute('select max(baz) from foo')
>>> c.fetchall()
[(u'2010-12-14 01:15:54.685575',)]
< /code>
Ich habe versucht, das Ergebnis in einen Zeitstempel zu geben, aber es gibt nur das Jahr zurück: < /p>
>>> c.execute('select cast(max(baz) as timestamp) from foo')
>>> c.fetchall()
[(2010,)]
< /code>
Gibt es eine Möglichkeit, ein ordnungsgemäßes DateTime -Objekt abzurufen, ohne die Zeichenfolge manuell mit DateTime zu konvertieren.Strptime () nach dem Abrufen? < /p>
Lesen Sie eine DateTime in SQLite3 zurück ⇐ Python
-
- Similar Topics
- Replies
- Views
- Last post
-
-
Wie migrieren Sie Django von lokalem SQLite3 zu postgresql Docker -Container?
by Anonymous » » in Python - 0 Replies
- 11 Views
-
Last post by Anonymous
-