【问题标题】:Calculate date diff in sql在sql中计算datediff
【发布时间】:2016-01-29 01:34:37
【问题描述】:

我有一个包含以下列的表格 -

Id end_time status 12 1407477033 success 13 1407479820 error 14 1407479974 error

我必须找到所有状态为“错误”并在过去 15 分钟内完成的 id。我正在使用 ruby​​ 与数据库进行交互,因此我的查询变为(表名是 q_lists )。要找到我使用的时差DATEDIFF -

date = QList.find_by_sql("select end_time from q_lists where id = #{a.id}")
diff = QList.find_by_sql("select DATEDIFF(minute, FROM_UNIXTIME(date), CURRENT_TIMESTAMP")

注意:a 是循环变量,我正在迭代每一行。 我收到以下错误 -

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DATEDIFF'

我该如何解决这个问题。我也可以使用仅使用一个 sql 语句(没有循环迭代)将所有 id 存储在数组中的方式编写查询。

编辑 TIMESTAMPDIFF 解决了这个问题。很抱歉将两个问题合二为一,但有人可以指出在不使用循环的情况下一次性获取所有 id 的正确方法。

【问题讨论】:

  • 您在 c# 中在哪里运行这一行?选择 DATEDIFF(分钟, FROM_UNIXTIME(日期), CURRENT_TIMESTAMP)

标签: mysql sql ruby-on-rails ruby


【解决方案1】:

MySQL 的 DATEDIFF 与 Microsoft 的不同。它不包括第一个参数,只会返回两个日期之间的天数。你要TIMESTAMPDIFF

【讨论】:

    猜你喜欢
    • 2015-02-10
    • 1970-01-01
    • 2016-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多