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

像这样的东西应该工作:

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 回答
0

时间戳是从 1970 年 1 月 1 日起经过的秒数,因此为了将时间戳值转换为天数,需要将其乘以 60 * 60 * 24 (= 86400)

于 2012-05-30T13:05:18.007 回答