1

注文リストのテーブルがあります。各注文には注文日 (タイムスタンプ 1331182800) があります。注文ごとに、ユーザーは自動再注文を 30 日、60 日、または 90 日 (reorderフィールド (int)) で選択できます。注文日 = 日付 + 再注文のすべての注文を選択するには、cron 用の sql が必要です。(日付注文 + 30 日または 60 日または 90 日)。これを手伝ってもらえますか?

4

3 に答える 3

2
SELECT * FROM orders o WHERE DATE_FORMAT(DATE_SUB(NOW(), INTERVAL o.reorder DAY), '%d/%m/%Y') = DATE_FORMAT(FROM_UNIXTIME(o.date), '%d/%m/%Y')

比較から秒をスキップするように編集されました。私はMYSQLエンジンを持っていないので、まだいくつかのエラーが発生する可能性があります。

于 2012-05-30T13:05:56.957 に答える
0

タイムスタンプは1970年1月1日から経過した秒数であるため、タイムスタンプ値を日数に変換するには、60 * 60 * 24(= 86400)を掛ける必要があります。

于 2012-05-30T13:05:18.007 に答える
0

このようなものが動作するはずです:

SELECT * FROM orders WHERE `date` < UNIX_TIMESTAMP() - reorder*86400; # returns all orders, `date` field of which is older than 90 days ago
于 2012-05-30T13:03:32.027 に答える