MySQL Timestamp zu unixtime

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
taake
User
Beiträge: 125
Registriert: Donnerstag 14. Oktober 2010, 08:49

Moin,
ich find gerade keine Lösung für folgendes Problem.
Ich schreibe bei Jedem Update des Datensatzes den Timestamp mit in die Datenbank.
Der hat folgendes Format: 2015-04-24 13:59:48
Ich würde gerne diesen Timestamp wieder nutzen um zu überprüfen wann das letzte Update war, also quasi sowas wie nur update wenn länger als 5 min kein update.

Leider ist der in diesem Format ziemlich nutzlos, ich würde ihn gerade zu unixtime convertieren, da man damit am Besten rechnen kann.
Allerdings finde ich nur Infos wie man es genau andersrum macht.

Sicherlich könnte ich ein neues Feld hinzufügen und dort einfach die Unixtime reinschreiben um damit zu arbeiten, aber genau das möchte ich eigentlich vermeiden.

Gibt es ein Weg aus diesem Timestamp die Unixtime zu bekommen?
Und wenn ja wie würde dieser aussehen?

Also ja es gibt wohl für mysql sowas wie select [unixtime] TIMESTAMP oder sowas.
Allerdings hab ich als DB-Backend sqlalchemy laufen und würde das gerne ohne Ausnahme beibehalten.

Schon mal Danke für eure Hilfe.
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@taake: Das Format ist doch hoffentlich frei wählbar. Normalerweise liefern Python-Anbindungen an MySQL datetime-Objekte für TIMESTAMP-Felder, mit denen sich auch ganz leicht rechnen läßt. Alternativ kann MySQL natürlich auch mit Zeiten rechnen.
taake
User
Beiträge: 125
Registriert: Donnerstag 14. Oktober 2010, 08:49

....
print type(target_client.last_visit)
<type 'datetime.datetime'>


Zeit fürs Wochenende ....


dennoch danke ;)
Benutzeravatar
ngulam
User
Beiträge: 35
Registriert: Freitag 18. Oktober 2013, 11:03

Objekt, wie es aus Deiner Abfrage kommt:

Code: Alles auswählen

last_update = datetime.datetime( 2015, 04, 24, 13, 59, 48)
# Differenz zu "jetzt"
since_last_update = datetime.datetime.now() - last_update
# in Sekunden
since_last_update.total_seconds()
# wenn das mehr als 5*60 Sekunden sind...

HTH
งูหลาม
Antworten