【问题标题】:Mysql - Select rows created 1 hour agoMysql - 选择 1 小时前创建的行
【发布时间】:2019-06-05 13:05:59
【问题描述】:

我尝试开发一个 cron 任务 (PHP-MYSQL),该任务将每 10 分钟执行一次,以便仅根据我的查询结果发送电子邮件。

在这个脚本上,我想选择 1 小时前创建的行。我有一个包含创建日期的日期时间字段。

如何选择 1 小时前创建的行? (不关心分秒)

我在下面尝试了这段代码,但它返回了所有超过 1 小时的行,这不是我需要的

SELECT email FROM clients WHERE (date_creation  < DATE_SUB(NOW(), INTERVAL 1 HOUR))

【问题讨论】:

  • “1 小时前”是什么意思?例如,如果您在 9:30 运行 cron 脚本,它应该选择在 8:50 创建的行还是恰好在 8:30 创建的行?

标签: mysql


【解决方案1】:

您可以使用此查询。

SELECT email FROM clients WHERE date_creation >= DATE_SUB(NOW(), INTERVAL 1 HOUR);

它会给你一个小时内创建的所有记录。

【讨论】:

  • 我想它会是-1 HOUR,因为用户想要获得“过去”小时
  • @AmitabhDas -1 HOUR 将使我的时间增加 1 小时。所以无法使用。
  • 谢谢,但结果如下:2019-06-05 17:16:29,我在 17:22:00 启动了查询,所以它给了我 15 分钟前创建的一行跨度>
猜你喜欢
  • 2015-12-07
  • 1970-01-01
  • 1970-01-01
  • 2019-06-10
  • 1970-01-01
  • 2016-09-13
  • 2012-04-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多