2011-09-25 23 views
5

我有一個mySQL的表。有30個記錄都有日期欄。用現有記錄php mySQL設置日期格式。怎麼樣?

如何更改表格中現有的所有記錄以便今天的日期格式爲?

date_default_timezone_set('America/Los_Angeles'); 
$date = date("m/d/y g:i A") ; 
+0

VARCHAR(20)的定義是 – Erik

+2

我不建議使用varchar作爲日期,使用時間戳或日期時間,然後可以使用以下格式來格式化mysql日期:DATE_FORMAT() –

+0

好的,但是如何更改現有記錄? – Erik

回答

7

下面是DATETIME修復爲VARCHAR(這將erease當前值):

ALTER TABLE mytable modify column `mycolumn` datetime NOT NULL DEFAULT 0; 
UPDATE mytable SET mycolumn = NOW() WHERE ...; 

UPDATE mytable SET mycolumn = '2011-09-25 17:40:00' WHERE ...; 

如果你想保存當前值用途:

ALTER TABLE mytable add column `newdate` datetime NOT NULL DEFAULT 0; 
UPDATE mytable SET newdate = mycolumn; 
ALTER TABLE mytable DROP COLUMN mycolumn; 

如果你想選擇的格式,你可以將日期:

SELECT DATE_FORMAT(mycolumn, '%m/%e/%y %h:%i %p') FROM mytable WHERE ... 

或者在你的PHP可以使用:

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']));