我正在寻找的是查询的一些帮助。
我有一个带有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。我希望有人可以帮我解决这个问题。
提前谢谢。
答案 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会为你做这件事吗?或者你还需要更多东西吗?