Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chuyển đổi giữa các ngày được định dạng không hợp lý (thay đổi / gạch chéo / thành -dash-)

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

Hoặc tốt hơn - chỉ cần thay đổi dữ liệu trong cơ sở dữ liệu:

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

... và sau đó chuyển đổi trường thành loại DATE.

---- CHỈNH SỬA ----

Trên thực tế, Đại tá Shrapnel có một điểm ... Tôi đã bỏ qua sự thật rằng ngày cũng cần phải đảo ngược nên nó là YYYY-MM-DD; giả sử ngày ban đầu ở định dạng DD / MM / YYYY, một truy vấn tốt hơn có thể là:

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

Điều này sẽ đảo ngược các phần thành phần thành một chuỗi có thể được chuyển đổi thành NGÀY ... nó sẽ không hoạt động nếu chuỗi ngày ban đầu không sử dụng các số 0 ở đầu 1/6/2011 chẳng hạn ... sẽ cần phải làm gì đó sáng suốt hơn một chút trong trường hợp đó.



  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 DISTINCT không hoạt động nếu tôi thêm một cột khác

  2. Truy vấn MySQL để gán một số ngẫu nhiên duy nhất cho mỗi hàng

  3. MySQL ALTER TABLE trên bảng rất lớn - có an toàn để chạy nó không?

  4. Cố gắng nhận INSERT để chỉ chèn dữ liệu mới

  5. Hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS):MSSQL vs MySQL