Mysql
 sql >> база данни >  >> RDS >> Mysql

Преобразуване между нелогично форматирани дати (промяна на /наклонена черта/ в -тире-)

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

Или още по-добре - просто променете данните в базата данни:

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

... и след това преобразувайте полето във вид ДАТА.

---- РЕДАКТИРАНЕ ----

Всъщност полк. Шрапнел има право... Бях пренебрегнал факта, че датата също трябва да се обърне, така че е ГГГГ-ММ-ДД; ако приемем, че оригиналната дата е във формат ДД/ММ/ГГГГ, по-добра заявка може да бъде нещо като:

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

Което ще обърне компонентните части в низ, който може да се преобразува в ДАТА... няма да работи, ако оригиналният низ за дата не използва водещи нули 1/6/2011 например... ще трябва да направя нещо малко по-умно в такъв случай.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Оптимизиране на MySQL заявки в йерархични данни

  2. Грешка в колоната с времеви клеймо на mysql

  3. Намерете следващия път, когато бизнесът е отворен; mysql изчисляване на часове

  4. Въведение във Firebase

  5. SQL - Комбинирайте две таблици с различна стойност на датата