Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Mengonversi antara tanggal yang diformat secara tidak logis (mengubah /slash/ menjadi -dash- )

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

Atau lebih baik lagi - cukup ubah data di database:

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

... lalu ubah bidang tersebut menjadi DATE.

---- EDIT ----

Sebenarnya, Kolonel pecahan peluru ada benarnya ... Saya telah mengabaikan fakta bahwa tanggalnya juga perlu dibalik jadi YYYY-MM-DD; dengan asumsi tanggal asli dalam format DD/MM/YYYY, kueri yang lebih baik mungkin seperti:

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

Yang akan membalikkan bagian komponen menjadi string yang dapat diubah menjadi DATE ... itu tidak akan berfungsi jika string tanggal asli tidak menggunakan nol di depan 1/6/2011 misalnya... perlu melakukan sesuatu yang sedikit lebih pintar dalam kasus itu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. durasi mysql dan waktu pengambilan

  2. Ingin menyimpan Obyek di database MySQL

  3. MySQL Membaca dari aliran gagal

  4. Memilih di beberapa tabel dengan UNION

  5. Bisakah saya menerapkan batasan keunikan secara kondisional?