2012-05-30 690 views
1

我有表格与订单列表。每个订单都有订单日期(时间戳1331182800)。对于每个订单,用户可以选择自动重新订购30,60或90天(reorder field(int))。 我需要sql for cron来选择所有订单,它们的订单日期=日期+重新排序。 (日期订单+ 30或60或90天)。 你能帮我吗?Mysql unix时间戳选择

+1

订单日期是一个unix时间戳,重新排序是一个日期编号,不是他们? – Sebas

+1

'SELECT * FROM table_name WHERE UNIX_TIMESTAMP()> =(order_time_col +(reorder_days_col * 86400))' – DaveRandom

回答

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引擎,所以一些错误仍然可能发生,如果这样我很抱歉这样不方便...

+0

其返回空结果。我有一个订单与订单日期2012年5月28日(1338183074)在重新排序字段我把2我的查询是:SELECT * FROM订单WHERE date_add(NOW(),INTERVAL重新排序DAY)= FROM_UNIXTIME('ord_date') – YamahaSY

+0

查询也是比较秒数并不明显不匹配;更新即将到来 – Sebas

+0

@Sebas'我没有MYSQL引擎' - 请允许我向您介绍[SQLFiddle](http://sqlfiddle.com/);-) – DaveRandom

0

像这样的东西应该工作:

SELECT * FROM orders WHERE `date` < UNIX_TIMESTAMP() - reorder*86400; # returns all orders, `date` field of which is older than 90 days ago 
0

时间戳是从1970年1月1日 经过的秒数所以为了时间戳值转换为天一个需要与之相乘60 * 60 * 24(= 86400 )