Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Konwersja między nielogicznie sformatowanymi datami (zmiana /slash/ na -dash- )

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

Albo jeszcze lepiej - po prostu zmień dane w bazie danych:

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

... a następnie przekonwertuj pole na typ DATA.

---- EDYTUJ ----

Właściwie pułkownik Shrapnel ma rację… przeoczyłem fakt, że data również wymaga cofnięcia, więc jest to RRRR-MM-DD; zakładając, że oryginalna data jest w formacie DD/MM/RRRR, lepszym zapytaniem może być:

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

Co odwróci części składowe w ciąg, który można przekonwertować na DATĘ ... nie zadziała, jeśli oryginalny ciąg daty nie używa wiodących zer 1/6/2011 na przykład... musiałby w takim przypadku zrobić coś mądrzejszego.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jaki jest cel używania mysql_secure_installation?

  2. PHP - PDO pobierz zestaw wyników z kolumną jako indeksem i kolumną jako wartością

  3. Załaduj tablicę JavaScript z danymi bazy danych MYSQL

  4. JOIN Problem wydajności MySQL

  5. Zaprojektowanie znormalizowanej bazy danych w celu uzyskania 5 najbliższych sąsiadów przy użyciu indeksu przestrzennego MySQL