MySQL在日期列中更新了很多行

时间:2015-04-23 01:14:12

标签: mysql date

拥有以下行:

1|2015-04-22
2|2015-03-11
3|2015-02-15

我希望在一天中更新所有行,例如:

1|2015-04-25
2|2015-03-25
3|2015-02-25

2 个答案:

答案 0 :(得分:1)

您可以将日期转换为字符串,放在第25位:

select t.id,
       date(concat_ws('-', year(dte), month(dte), 25))
from table t;

另一种方法是减去当月的当天减去1,然后加回25:

select t.id,
       dte + interval (1 - day(dte) + 24) day
from table t;

编辑:

作为更新:

update table t
    set dte = dte + interval (25 - day(dte)) day;

答案 1 :(得分:1)

看起来您希望保持年份和月份相同,并将所有日期更改为显示的年份和月份的25日。

您需要的公式是

DATE(DATE_FORMAT(datecolumn, '%Y-%m-25'))

所以,要更新表格

UPDATE mytable SET datecolumn =  DATE(DATE_FORMAT(datecolumn, '%Y-%m-25'))