SQL - 如何根据当前值确定更新值

时间:2014-11-10 15:10:17

标签: mysql sql

我有一个日期格式为0014-%的列,我想将其更新为2014-%格式。

例如,0014-01-01将变为2014-01-010014-02-01将变为0014-02-01,依此类推。

我可以使用SQL查询执行此操作。如果是这样,我的查询将如何?

此查询为我提供了所有需要更新的值

SELECT DATE_ABC FROM TABLE_XYZ
WHERE DATE_ABC LIKE '0014-%';
GROUP BY DATE_ABC;

3 个答案:

答案 0 :(得分:1)

如果您将日期存储为date而不是字符串,请尝试:

update table_xyz
    set date_abc = date_abc + interval 2000 year
    where year(date_abc) = 14;

其他答案涵盖了您将日期存储为字符串的情况(我建议您不要这样做)。

答案 1 :(得分:0)

会替换工作吗? REPLACE(DATE_ABC, '0014', '2014')?否则结合substring和concat:CONCAT('2', SUBSTRING(DATE_ABC, 1))

SELECT DATE_ABC, CONCAT('2', SUBSTRING(DATE_ABC, 1))
FROM TABLE_XYZ
WHERE DATE_ABC LIKE '0014-%';
GROUP BY DATE_ABC;

答案 2 :(得分:0)

UPDATE table_xyz
SET date_abc = REPLACE(date_abc '0014%', '2014'%)
WHERE date_abc LIKE ('0014%');