sql >> Databáze >  >> RDS >> Mysql

jaký je správný způsob převodu mezi datem mysql a časovým razítkem pythonu?

Rád to aktualizuji, pokud tomu dobře nerozumím, ale zde je několik příkladů, které mohou pomoci. Všimněte si, že toto používá datetime modul namísto time .

>>> import datetime

Zde nastavíme příklad časového razítka ts a formát f :

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

Podobně jako to, co jste udělali výše, používáme strptime funkce (z datetime.datetime ), abyste převedli náš řetězec na datetime objekt založený na parametru formátování:

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

Nyní obráceně – zde používáme datetime.datetime.now() získat aktuální čas jako datetime objekt:

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

V datetime případě strftime metoda je ve skutečnosti volána v datetime samotný objekt s parametrem formátování jako argument:

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

Ve vaší situaci je důvod, proč se vám zobrazila chyba, protože time.time() vrátí float:

>>> time.time()
1357980846.290231

Ale time.strftime potřebuje time tuple, podobný tomu, co jste měli výše. Aniž byste se dostali do šílené spirály, kterou je čas, funkce jako time.localtime() vrátí výše zmíněný time n-tice a vrátí se, jak očekáváte:

>>> 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. 6 způsobů, jak převést řetězec na hodnotu data/času na serveru SQL

  2. MAX vs Top 1 – co je lepší?

  3. Jak změnit řazení databáze SQL Server pomocí T-SQL

  4. Jak PLAY_SOUND v Oracle Forms