日期操作MySQL的更新我有一個MySQL表:與其他領域
fields:
tag
duedate
在「標籤」字段我有一個字符串conatining日期(「MYWHATEVER_20130401」)。
所有具有「標籤」如「MYWHATEVER_%」的行,我需要使用「標籤」中的「20130401」更新「duedate」並添加14天並以格式「2013-04-15」存儲。
任何方式來做一個查詢?
日期操作MySQL的更新我有一個MySQL表:與其他領域
fields:
tag
duedate
在「標籤」字段我有一個字符串conatining日期(「MYWHATEVER_20130401」)。
所有具有「標籤」如「MYWHATEVER_%」的行,我需要使用「標籤」中的「20130401」更新「duedate」並添加14天並以格式「2013-04-15」存儲。
任何方式來做一個查詢?
您可以使用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\_%'
,然後只需添加一個「WHERE標籤,如'MYWHATEVER_%」? – 2013-04-05 16:24:56
@MichaelGrenzer究竟是':)' – 2013-04-05 16:26:00
非常感謝...你救了我的一天:D – 2013-04-05 16:28:39
可以使用STR_TO_DATE功能:
UPDATE yourtable
SET
duedate = STR_TO_DATE(tag, 'MYWHATEVER_%Y%m%d') + INTERVAL 14 DAY
WHERE
tag LIKE 'MYWHATEVER\_%'
我在LIKE子句逃脫_
,因爲它是一個快活的性格。
是固定日期的長度,位於列'tag'字符串的最後? – 2013-04-05 16:20:26
是的,都有完全相同的格式。 (MYWHATEVER_YYYYMMDD) – 2013-04-05 16:22:20
'duedate'列的數據類型是什麼? – 2013-04-05 16:22:38