2017-07-03 28 views
0

我有一個dob屬性,它是一個varchar。部分日期以2017/6/6格式存儲,部分日期格式爲2017-06-06。如何將6/6/2017格式的數據轉換爲2017-06-06並將dob字段設置爲DATE數據類型?如何將varchar字段轉換爲日期

回答

1

如果您想要通過如果你只是想要使用此查詢

UPDATE TABLE tbl_name set format_dob= STR_TO_DATE(yourdatefield, '%d/%m/%Y') 

到d/M/YYYY日期YYYY-MM-DD轉換永久然後add_new其列DATE數據類型和更新列值計算列然後只需使用

SELECT STR_TO_DATE(yourdatefield, '%m/%d/%Y') FROM tbl_name 
2

您的查詢,你可以這樣寫:

UPDATE table_name 
    SET column1=DATE(STR_TO_DATE(column1, '%Y-%m-%d')) 
    WHERE column1='"'.date('%d/%m/%Y',strtotime(column1)).'"' 

並設置VARCHAR最新數據類型可以使用convert函數或寫,如:

SET DATEFORMAT dmy 
+0

我得到查詢錯誤。 – Steve

1

首先更新現有的使用適當的日期格式(YYYY-MM-DD)列

UPDATE tbl_name SET dob = STR_TO_DATE(dob,'%d/%m/%Y') 
WHERE STR_TO_DATE(dob,'%d/%m/%Y') IS NOT NULL; 

一旦Update是完成ALTER列到DATE數據類型

ALTER TABLE tbl_name MODIFY `dob` DATE NOT NULL DEFAULT '0000-00-00'; 
+0

與第一個查詢,它是給予空值。 – Steve

+0

對不起,沒有仔細看看你目前的日期格式。已更新我的POST。請檢查一下。 – Samir

相關問題