如何更新时间戳列移动日期

时间:2013-06-29 01:01:27

标签: mysql

我正在寻找的是查询的一些帮助。

我有一个带有unixtime的MySql字段,表示未来几十个月的每一个日期。对于表格中的每个条目,我必须将日期提前到下个月的第一天。

日期是每个月的20日,所以我想将6月20日移至7月1日,7月20日至8月1日,依此类推。我不能只增加11天,因为这不会是下个月的第一天考虑31天和2月的月份。

我一直在玩这样的想法:

update table set column = UNIX_TIMESTAMP(column + MONTH(column)+1,DAY(1)) where index_column = '1234'

但我很确定这不起作用。我可以使用这样的东西来转换它,然后尝试将其转换回来:

update table set column = DATEFORMAT(column,'%Y-$c-%d %H:%i:%s') where index_column == '1234'

我仍然认为必须有更好的方法。坦率地说,我会手动更新几十个,但我知道这会经常出现,并且不希望每次都要手动完成。

我不想使用代码,而是希望直接将其直接用于MySql。我希望有人可以帮我解决这个问题。

提前谢谢。

2 个答案:

答案 0 :(得分:1)

也许像这样的作品:

update table set column = UNIX_TIMESTAMP(LAST_DAY(FROM_UNIXTIME(column)) + INTERVAL 1 DAY) where index_column = '1234'

参考:http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_last-day

答案 1 :(得分:0)

ADDDATE会为你做这件事吗?或者你还需要更多东西吗?