如何将varchar字段转换为日期

问题描述:

我有一个dob属性,它是一个varchar。部分日期以2017/6/6格式存储,部分日期格式为2017-06-06。如何将6/6/2017格式的数据转换为2017-06-06并将dob字段设置为DATE数据类型?如何将varchar字段转换为日期

如果您想要通过如果你只是想要使用此查询

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 

您的查询,你可以这样写:

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

首先更新现有的使用适当的日期格式(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