sql >> Database teknologi >  >> RDS >> Mysql

hvad er den rigtige måde at konvertere mellem mysql datetime og python timestamp?

Jeg vil gerne opdatere dette, hvis jeg ikke forstår det rigtigt, men her er et par eksempler, der kan hjælpe. Bemærk, at dette bruger datetime modul i stedet for time .

>>> import datetime

Her opsætter vi et eksempel på et tidsstempel ts og et format f :

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

I lighed med det, du gjorde ovenfor, bruger vi strptime funktion (fra datetime.datetime ) for at konvertere vores streng til en datetime objekt baseret på formateringsparameteren:

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

Nu omvendt - her bruger vi datetime.datetime.now() for at få det aktuelle klokkeslæt som en datetime objekt:

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

I datetime case, strftime metode kaldes faktisk på datetime selve objektet med formateringsparameteren som argument:

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

I din situation er grunden til, at du fik en fejl, fordi time.time() returnerer en float:

>>> time.time()
1357980846.290231

Men time.strftime har brug for en time tuple, svarende til det du havde ovenfor. Uden at komme ind i den vanvittige spiral, det vil sige tid, er en funktion såsom time.localtime() vil returnere den førnævnte time tuple og vil vende tilbage, som du forventer:

>>> 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. PostgreSQL:Fjern attribut fra JSON-kolonnen

  2. Sådan viser du tabeller i den aktuelle database ved hjælp af PostgreSQL

  3. Hvordan finder jeg ud af den _nøjagtige_ fejl fra SQL Server

  4. Sådan rettes typiske WordPress-fejl