在sql中计算日期差异

时间:2016-01-29 01:34:37

标签: mysql sql ruby-on-rails ruby

我的表格包含以下列 -

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,而不使用循环。

1 个答案:

答案 0 :(得分:0)

MySQL的DATEDIFF与微软的不同。它不包含第一个参数,只返回两个日期之间的天数。你想要TIMESTAMPDIFF