【问题标题】:Sql query to select from 1 hour ago?要从 1 小时前选择的 Sql 查询?
【发布时间】:2021-10-24 00:32:56
【问题描述】:

我有这个查询,但我想根据服务器时间更改日期以删除超过 1 小时前的所有内容(或者如果服务器时间不可能,则按发布日期)。我该怎么做?

DELETE FROM wp_posts
 WHERE post_date < '2008-06-06 19:18:00' 
   AND post_status = 'publish'

【问题讨论】:

    标签: sql mysql


    【解决方案1】:

    用途:

    DELETE FROM wp_posts
     WHERE post_date < DATE_SUB(NOW(), INTERVAL '1' HOUR)
       AND post_status = 'publish'
    

    参考:

    【讨论】:

      【解决方案2】:

      甚至更简单:

      SELECT NOW() - INTERVAL 1 HOUR;
      

      所以查询变成:

      DELETE FROM wp_posts
       WHERE post_date < NOW() - INTERVAL 1 HOUR
         AND post_status = 'publish'
      

      【讨论】:

      • 在某些 RDBS 中,时间应该用单引号括起来,例如:'1 Hour'
      【解决方案3】:

      子日期功能也可以!

      SELECT subdate(current_timestamp, interval 1 hour)
      

      【讨论】:

        【解决方案4】:
        DELETE from  table where date_add < NOW() - INTERVAL 1 HOUR;
        

        查看运行这条sql的时间:

        select NOW() - INTERVAL 1 HOUR as s1 , NOW() as s2;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-09-13
          • 1970-01-01
          • 1970-01-01
          • 2020-12-21
          • 2011-09-09
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多