0

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

我有一个带有 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 中执行。我希望有人可以帮助我解决这个问题。

先感谢您。

4

2 回答 2

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

于 2013-06-29T01:41:58.893 回答
0

ADDDATE为您做吗?或者你需要更多的东西吗?

于 2013-06-29T01:06:44.547 回答