2017-08-24 143 views
-1

我現在有我的數據庫更新插入新記錄時的時間戳。它格式是這樣的:從sql數據庫中刪除。基於時間戳(cron job)?

2017-08-24 15:48:30.189182

我的問題是:我怎麼刪除已經結束,假設3天的記錄?

我假設我可以每晚運行一個cron作業來刪除超過3天的記錄。有人可以給我的格式嗎?我不知道如何處理時間戳數據。

謝謝你的幫助!

+2

您預計**嘗試自己編寫的代碼**。在[**做更多的研究**之後](https://meta.stackoverflow.com/q/261592/1011527)如果你有問題**發佈你已經嘗試了**的**明確的解釋不工作**並提供[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。閱讀[如何問](http://stackoverflow.com/help/how-to-ask)一個很好的問題。請務必[參觀](http://stackoverflow.com/tour)並閱讀[this](https://meta.stackoverflow.com/q/347937/1011527)。 –

+0

if((time() - strtotime('2017-08-24 15:48:30.189182')> 259200){// 3天過去了;} – coderodour

+0

謝謝!!!!!!通常我會包含代碼。不知道它是如何被格式化的 –

回答

0

不同的數據庫有不同的方式來計算兩個天之間的時間差......

MySQL的:DATEDIFF(DATE1,DATE2);
Oracle:select date1 - date2 from dual;
等等...

0

假設列DATE類型的,你可以運行刪除所有列,其中今天和你列之間的差值大於3

查詢替換爲table您表和date_column與您的列名稱。再說一遍,這裏假定你已經得到了DATE類型的列,而不是VARCHAR或其他東西。

DELETE FROM table WHERE DATEDIFF(CURDATE(), date_column) > 3