拥有以下行:
1|2015-04-22
2|2015-03-11
3|2015-02-15
我希望在一天中更新所有行,例如:
1|2015-04-25
2|2015-03-25
3|2015-02-25
答案 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'))