sql >> Databasteknik >  >> RDS >> Mysql

vad är det rätta sättet att konvertera mellan mysql datetime och python tidsstämpel?

Jag uppdaterar gärna detta om jag inte förstår mig riktigt, men här är några exempel som kan hjälpa. Observera att detta använder datetime modul istället för time .

>>> import datetime

Här sätter vi upp ett exempel på tidsstämpel ts och formatet f :

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

I likhet med vad du gjorde ovan använder vi strptime funktion (från datetime.datetime ) för att konvertera vår sträng till en datetime objekt baserat på formateringsparametern:

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

Nu omvänt - här använder vi datetime.datetime.now() för att få aktuell tid som en datetime objekt:

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

I datetime case, strftime metoden anropas faktiskt på datetime objektet självt, med formateringsparametern som argument:

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

I din situation är anledningen till att du fick ett fel att time.time() returnerar en flytande:

>>> time.time()
1357980846.290231

Men time.strftime behöver en time tupel, liknande det du hade ovan. Utan att komma in i den irriterande spiralen som är tid, en funktion som time.localtime() returnerar ovannämnda time tuple och kommer tillbaka som du förväntar dig:

>>> 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. Hur man trunkerar text med en ellips i MariaDB

  2. Få första/sista n poster per grupp av

  3. Oracle snabbare sökfråga

  4. Hur formaterar jag ett tal med kommatecken i T-SQL?