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