[ Obsah | Zobrazit menu ]

Změna unix timestamp na date v MySQL

Napsáno dne 27. listopadu 2009 - Zobrazeno 2 914x

Možná jste už museli někdy řešit své hříchy z mládí. Když jsem začínal, vytvořil jsem systém a navrhl databázi. Bohužel, tehdy jsem databázím vůbec nerozuměl a v PHP jsem zběhlý nebyl.

Tehdy jsem vymyslel, že budu do databáze ukládat data v unix timestampu, tedy číslo od 1.1.1970. A při každé komunikaci s uživatelem jsem jej pomocí funkce Date().

Nyní jsem začal předělávat stávající návrh a potřeboval jsem převést tyto špatné datumy v DB na klasický datový typ date, případně datetime.

Nejdříve jsem si vytvořil dočasný sloupeček s požadovaným typem date. Následoval SQL příkaz:

UPDATE tabulka SET temp_datum = FROM_UNIXTIME(datum) ;

A pak bylo nutné původní  datum předělat na datový typ date. Tohle jsem vyřešil smazáním a následným novým vložením. Pokud někdo znáte lepší metodu, prosím podělte se o ni.

A pak už jsem následovalo nakopírování nové hodnoty z temp_datum:

UPDATE tabulka SET datum = temp_datum;

Těch neduhů je v databázi víc, časem se o ně třeba podělím. Jaké neduhy máte vy?

Zařazeno v: Databáze,MySQL.

  • tjo sedim v praci, neco hledam a koukam najednou ze Honza Machala 🙂 / nebo jsi jinej Honza Machala? :))

    kdysi sme tusim resili neco kolem Petra? ale uz ses posunul koukam 🙂

    • Ahoj Jelzine, jo jo, jsem to já. Ten správnej Honza Machala. To už je teda doba … a když si matně vzpomínám, co jsem tehdy tvrdil o programování …