2011-09-25 5 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

Iドン定義ですvarcharを日付として使用すること、タイムスタンプまたは日付時刻を使用することをお勧めします.DATE_FORMAT() –

+0

okですが、既存のレコードはどのように変更しますか? – 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'])); 
関連する問題