sql >> Database >  >> RDS >> Mysql

wat is de juiste manier om te converteren tussen mysql datetime en python timestamp?

Graag update ik dit als ik het niet goed begrijp, maar hier zijn een paar voorbeelden die kunnen helpen. Merk op dat dit de datetime . gebruikt module in plaats van time .

>>> import datetime

Hier stellen we een voorbeeldtijdstempel in ts en een formaat f :

>>> ts = '2013-01-12 15:27:43'
>>> f = '%Y-%m-%d %H:%M:%S'

Net als wat je hierboven deed, gebruiken we de strptime functie (van datetime.datetime ) om onze string om te zetten in een datetime object gebaseerd op de opmaakparameter:

>>> datetime.datetime.strptime(ts, f)
datetime.datetime(2013, 1, 12, 15, 27, 43)

Nu omgekeerd - hier gebruiken we datetime.datetime.now() om de huidige tijd te krijgen als een datetime voorwerp:

>>> now = datetime.datetime.now()
>>> now
datetime.datetime(2013, 1, 12, 0, 46, 54, 490219)

In de datetime geval, de strftime methode wordt eigenlijk aangeroepen op de datetime object zelf, met de opmaakparameter als argument:

>>> now.strftime(f)   
'2013-01-12 00:46:54'

In uw situatie kreeg u een foutmelding omdat time.time() geeft een float terug:

>>> time.time()
1357980846.290231

Maar time.strftime heeft een time nodig tuple, vergelijkbaar met wat je hierboven had. Zonder in de gekmakende spiraal te komen die tijd is, een functie zoals time.localtime() zal de eerder genoemde time teruggeven tuple en zal terugkeren zoals je verwacht:

>>> now = time.localtime()
>>> now
time.struct_time(tm_year=2013, tm_mon=1, tm_mday=12, tm_hour=0, tm_min=55, tm_sec=55, tm_wday=5, tm_yday=12, tm_isdst=0)
>>> f = '%Y-%m-%d %H:%M:%S'
>>> time.strftime(f, now)
'2013-01-12 00:55:55'


  1. Oracle pivot met subquery

  2. Vergelijkbare UTF-8-tekenreeksen voor veld voor automatisch aanvullen

  3. Een offline-first native Android-app ontwikkelen

  4. Best practices voor het optimaliseren van LAMP-sites voor snelheid?