2

我有一个 MySQL 表:

fields:

tag
duedate

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

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

有什么办法可以用一个查询来做到这一点?

4

2 回答 2

2

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

UPDATE  tableName
SET     duedate = STR_TO_DATE(RIGHT(tag, 8),'%Y%m%d') + INTERVAL 14 DAY
WHERE   tag LIKE 'MYWHATEVER\_%'
于 2013-04-05T16:22:07.000 回答
0

您可以使用STR_TO_DATE函数:

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

我逃脱_了 LIKE 子句,因为它是一个快乐的角色。

于 2013-04-05T16:27:08.777 回答