2016-06-09 23 views
0

我有一個生日和它的varchar類型的列,我想更改爲日期並添加全年,而不是隻有2位數字。在MySQL中更新全年的生日

如果某人出生於05061985 MySQL的刪除第一個0和顯示爲50685

更改50685
要==> 05061985

所有用戶的生日,從1900至1999年

+0

從右邊分割爲2作爲每個大小,然後在最後加上19,如果日期大小小於2,則爲0然後追加0 – Naruto

+0

真的我不明白,你能告訴我怎麼做? – Alex

+0

你的問題是什麼? – SunSparc

回答

1

讓我們做一步一步

我們可以用len 5或6的字符串,所以我們確保我們有一個len 6字符串左填充0零

select LPAD('50685', 6, '0'); 

現在我們插入了「19」的第四和第五的位置

select CONCAT(LEFT(LPAD('50685', 6, '0'), 4), '19', RIGHT(LPAD('50685', 6, '0'), 2)); 

之間的串現在,我們要更新表FOOBAR的所有BIRTHDAY領域的最後一步

update FOOBAR set BIRTHDAY=CONCAT(LEFT(LPAD(BIRTHDAY, 6, '0'), 4), '19', RIGHT(LPAD(BIRTHDAY, 6, '0'), 2)); 

反正在這種情況下,你仍然有一個字符串字段,我建議修改的格式更是做一個適當的日期字段轉換,像YYYY-MM-DD

update FOOBAR set BIRTHDAY=LPAD(BIRTHDAY, 6, '0'); 
update FOOBAR set BIRTHDAY=CONCAT('19' , 
            RIGHT(BIRTHDAY, 2), 
            '-', 
            SUBSTR(BIRTHDAY, 3, 2), 
            '-', 
            LEFT(BIRTHDAY, 2)); 
alter table FOOBAR modify BIRTHDAY date;