如何将varchar字段转换为日期

时间:2017-07-03 03:00:54

标签: mysql

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

3 个答案:

答案 0 :(得分:2)

对于您的查询,您可以这样写:

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

并将varchar设置为date数据类型,您可以使用CONVERT函数或写如:

SET DATEFORMAT dmy

答案 1 :(得分:1)

如果要永久地将D / M / YYYY日期转换为YYYY-MM-DD,则使用DATE数据类型添加add_new列并使用此查询更新该列值

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

如果您只想要计算列,则只需使用

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

答案 2 :(得分: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';