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

Převod mezi nelogicky formátovanými daty (změna /lomítko/ na -dash- )

$start_date = date('Y-m-d', strtotime(str_replace('/', '-', $query->row('startdate'))));

Nebo ještě lépe – stačí změnit data v databázi:

UPDATE `table` SET `startdate` = REPLACE(`startdate`, '/', '-');

... a poté pole převeďte na typ DATE.

---- UPRAVIT ----

Plukovník Shrapnel má pravdu... Přehlédl jsem skutečnost, že je také potřeba změnit datum, takže je to RRRR-MM-DD; za předpokladu, že původní datum je ve formátu DD/MM/RRRR, lepší dotaz by mohl být něco jako:

UPDATE `table` SET `date` = CONCAT(SUBSTRING(`date`, 7), '-', SUBSTRING(`date`, 4, 2), '-', SUBSTRING(`date`, 1, 2))

Což obrátí součásti na řetězec, který lze převést na DATE ... nebude to úplně fungovat, pokud původní řetězec data nepoužívá úvodní nuly 1/6/2011 například... v tom případě by bylo potřeba udělat něco trochu chytřejšího.



  1. Problém s kódováním znaků

  2. Typ trojúhelníku v MySQL

  3. GROUP BY a agregovat sekvenční číselné hodnoty

  4. Použití názvů služeb Oracle s SQLAlchemy