MySQL更新与其他字段的日期操作

时间:2013-04-05 16:19:14

标签: mysql sql sql-update

我有一个MySQL表:

fields:

tag
duedate

在“tag”字段中,我有一个包含日期的字符串(“MYWHATEVER_20130401”)。

所有带“tag”的行如“MYWHATEVER_%”,我现在需要使用“标签”中的“20130401”更新“duedate”并添加14天并以“2013-04-15”格式存储。 / p>

用一个查询做任何事情吗?

2 个答案:

答案 0 :(得分:2)

您可以使用RIGHT()函数根据指定的长度修剪字符串中的字符。在您从字符串中添加14 days之前,您需要先使用STR_TO_DATE()将其转换为日期,例如。

UPDATE  tableName
SET     duedate = STR_TO_DATE(RIGHT(tag, 8),'%Y%m%d') + INTERVAL 14 DAY
WHERE   tag LIKE 'MYWHATEVER\_%'

答案 1 :(得分:0)

您可以使用STR_TO_DATE功能:

UPDATE yourtable
SET
  duedate = STR_TO_DATE(tag, 'MYWHATEVER_%Y%m%d') + INTERVAL 14 DAY
WHERE
  tag LIKE 'MYWHATEVER\_%'

我在LIKE子句上转义了_,因为它是一个快乐的角色。