2013-01-07 56 views
0
CREATE TABLE `Schedule` (
    `id` smallint(6) NOT NULL AUTO_INCREMENT, 
    `name` varchar(30) DEFAULT NULL, 
    `deptime` varchar(20) DEFAULT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM AUTO_INCREMENT=3221 DEFAULT CHARSET=latin1; 

該字段deptime包含以下格式的條目:2012-09-04 09:17更新MySQL表中的Varchar條目

現在我需要更改此字段中所有條目的日期,即2013-07-01 09:17。時間,即09:17不應該改變。我怎樣才能以快速的方式使用一些UPDATE查詢?

+1

如果你會使用'timestamp'或類似列類型,這會容易得多! – Sirko

+0

@Sirko:問題是有一個預先爲此表創建的預定義數據集。我應該使用這個數據集,但一天必須修改。這就是爲什麼我無法重新定義表格的原因。 –

回答

1

或者試試這個...

UPDATE schedule SET deptime = CONCAT('2013-07-01 ',TIME(deptime)); 
1

嘗試這個 -

update table Schedule 
set deptime = STR_TO_DATE(deptime,'%Y-%m-7 %h: %i'); 
OR 
update table Schedule 
set deptime = STR_TO_DATE(deptime,'%Y-%m-$PHPVar %h: %i'); 

1)給在日場的硬編碼值或提供PHP變量,如果你有。 2)使用24個小時格式%H 12個小時格式%H在STR_TO_DATE功能