2012-05-30 300 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 )