【问题标题】:Deleting from sql database. based on time stamp (cron job)?从 sql 数据库中删除。基于时间戳(cron作业)?
【发布时间】:2018-02-02 20:02:04
【问题描述】:

我目前让我的数据库在插入新记录时更新时间戳。它的格式如下:

2017-08-24 15:48:30.189182

我的问题是:如何删除超过 3 天的记录?

我假设我可以每晚运行一个 cron 作业来删除超过 3 天的记录。有人可以给我它的格式吗?我不确定如何处理时间戳数据。

感谢您的帮助!

【问题讨论】:

  • 您应该尝试自己编写代码。在doing more research 之后,如果您有问题发布您尝试过的方法,并清楚地解释什么不起作用,并提供a Minimal, Complete, and Verifiable example。阅读How to Ask 一个好问题。请务必take the tour 并阅读this
  • if ((time() - strtotime('2017-08-24 15:48:30.189182') > 259200){ //3天过去了; }
  • 谢谢!!!!!!通常我会包含代码。不知道需要如何格式化。
  • 您需要添加一些您一直在处理的代码,以便我们为您提供帮助。在 Stack Overflow 上索取免费代码并不是一个好习惯。要格式化代码,只需在每行前添加 4 个空格,并在文本前留一个空行。

标签: php mysql sql cron


【解决方案1】:

假设列的类型为 DATE,您可以运行一个查询,删除今天与您的列之间的差异大于 3 的所有列。

table 替换为您的表格,将date_column 替换为您的列名。同样,这假设您有 DATE 类型的列,而不是 VARCHAR 或其他类型的列。

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

【讨论】:

    【解决方案2】:

    不同的数据库有不同的方法来计算两天之间的时间差...

    MySQL: DATEDIFF(date1,date2);
    Oracle:从对偶中选择 date1 - date2;
    等等……

    【讨论】:

      猜你喜欢
      • 2020-11-20
      • 2013-08-04
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多