Dưới đây là các bản sửa lỗi cho các VARCHAR để DATETIME (điều này sẽ erease giá trị hiện tại):
ALTER TABLE mytable modify column `mycolumn` datetime NOT NULL DEFAULT 0;
UPDATE mytable SET mycolumn = NOW() WHERE ...;
hoặc
UPDATE mytable SET mycolumn = '2011-09-25 17:40:00' WHERE ...;
Nếu bạn muốn lưu giá trị hiện tại sử dụng:
ALTER TABLE mytable add column `newdate` datetime NOT NULL DEFAULT 0;
UPDATE mytable SET newdate = mycolumn;
ALTER TABLE mytable DROP COLUMN mycolumn;
Nếu bạn muốn chọn ngày theo định dạng bạn có thể:
SELECT DATE_FORMAT(mycolumn, '%m/%e/%y %h:%i %p') FROM mytable WHERE ...
Hoặc trong PHP của bạn, bạn có thể sử dụng:
date_default_timezone_set('America/Los_Angeles');
// query select ($row = mysql_fetch_assoc($query)...
$date = $date = date("m/d/y g:i A", strtotime($row['mycolumn']));
Nguồn
2011-09-25 21:42:01
varchar (20) là định nghĩa – Erik
tôi don Không nên sử dụng varchar như ngày, sử dụng dấu thời gian hoặc datetime, sau đó bạn có thể định dạng ngày mysql bằng cách sử dụng: DATE_FORMAT() –
ok, nhưng làm cách nào để thay đổi các bản ghi hiện có? – Erik