【问题标题】:How to select rows with Laravel and MySQL depending on a datetime field and an interval field如何根据日期时间字段和间隔字段使用 Laravel 和 MySQL 选择行
【发布时间】:2016-07-16 12:31:44
【问题描述】:

我想使用 Laravel 从 MySQL 表中选择记录,其中 NOW() 晚于日期时间字段加上整数字段的值(秒)。 - 我该怎么做?

表“记录”

  • id (int)
  • 名称(varchar)
  • updated_at(日期时间)
  • update_interval (int)

我希望完成类似的事情:

SELECT * FROM records WHERE NOW() > (updated_at + update_interval);

然后写成 Laravel where-condition 像:

Record::where( 'NOW()', '>', 'created_at + update_interval' );

【问题讨论】:

标签: mysql laravel


【解决方案1】:

您可能想要计算时间。向DATETIME 列添加一个数字会将其缩减为一个数值。

改为使用DATE_ADD 将其保持为正确的类型:

Record::where('NOW()', '>', 'DATE_ADD(created_at, INTERVAL update_interval SECOND)')

您可以在此处使用不同的单位调整区间计算。秒提供了最大的控制,但会导致像 86400 这样的大而令人困惑的数字。

【讨论】:

    猜你喜欢
    • 2010-10-08
    • 2013-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2017-08-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多