0

私が探しているのは、クエリのヘルプです。

次の数十か月のそれぞれの日付を表す unixtime を含む MySql フィールドがあります。テーブルのエントリごとに、日付を翌月の最初の日に移動する必要があります。

日付はすべて毎月 20 日なので、6 月 20 日から 7 月 1 日、7 月 20 日から 8 月 1 日などに移動します。31 日と 2 月がある月を考えると、11 日は翌月の最初の日ではないため、単純に 11 日を追加することはできません。

私は次のようなアイデアで遊んでいます:

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 に答える