MySQL更新,从其他字段进行日期操作

MySQL更新,从其他字段进行日期操作,mysql,sql,sql-update,Mysql,Sql,Sql Update,我有一个MySQL表: fields: tag duedate 在“tag”字段中,我有一个包含日期的字符串(“MYWHATEVER_20130401”) 所有带有“tag”的行,如“MyWhather_uuz%”,我现在需要使用“tag”中的“20130401”更新“duedate”,并添加14天,并以“2013-04-15”格式存储 一个查询有什么办法吗?您可以使用RIGHT()函数根据指定的长度修剪字符串中的字符。在从字符串中添加14天之前,需要先使用STR\u to\u date()

我有一个MySQL表:

fields:

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

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

一个查询有什么办法吗?

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

UPDATE  tableName
SET     duedate = STR_TO_DATE(RIGHT(tag, 8),'%Y%m%d') + INTERVAL 14 DAY
WHERE   tag LIKE 'MYWHATEVER\_%'
您可以使用以下功能:

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

我在LIKE子句中转义了
,因为它是一个愉快的字符。

是固定的日期长度,并且位于列
标记中字符串的最后一个?是的,所有的格式都完全相同。(MYWHATEVER_yyyyymmdd)列的数据类型是什么
duedate
?列的duedate类型是“date”,然后简单地添加一个“WHERE标记,如'MYWHATEVER%”?@MichaelGrenzer正是
:)
非常感谢。。。你救了我一天:你还需要转义
,因为它是一个通配符<代码>:)