2014-11-22 79 views
-2

在mysql数据库中我有contact_details表。在该表中的列名created_date2包含以下日期值:更新mysql表列

Formate : m/d y 
----------------- 
10/10/2014 
10/10/2014 
6/19/2013 
6/19/2013 
6/19/2013 
6/19/2013 
6/19/2013 
6/19/2013 
6/19/2013 
6/19/2013 
10/10/2014 
10/10/2014 
10/10/2014 
3/10/2014 

我想更新该列值,其月(M)具有不零(0)到 06,07 08等例如,你可以看到有几个日期6/19/2013。我想使用sql query来更新它到06/19/2013。有人可以告诉我该怎么做?

注意:我可以通过手动完成此操作,但存在超过2500行!

+0

数据类型用于该日期如果是数据格式,那么你就可以保存y/m/d格式 – Rashid 2014-11-22 05:19:40

回答

0

如果你确信,这是第一部分,即每月的部分问题而已,那就试试这个:

UPDATE contact_details 
SET created_date2 = CONCAT('0', created_date2) 
WHERE LENGTH(created_date2) < 10 
+0

感谢您的回复但不更新。 – Babu 2014-11-22 05:18:17

+0

OPPs。它工作正常。感谢Riad Vhai。 – Babu 2014-11-22 05:19:50

+0

欢迎..... babu – Riad 2014-11-22 05:21:02

0
UPDATE mytable 
    SET col = IFNULL(DATE_FORMAT(STR_TO_DATE(col ,'%m/%d/%Y'),'%m/%d/%Y'), col) 
+0

当前'created_date2'列有char(20)数据类型。我可以将其更改为'timestamp'数据类型吗?如果是这样,那么它会是'0000000000'? (我想将当前的“日期值”更改为“时间戳”格式) – Babu 2014-11-22 06:06:16