2011-02-17 31 views
0

我有一个名为createdAtdatetime字段的历史表。我试图确定记录的年龄,但年龄列回来为Null如何在使用MySQL时在几分钟内找到记录的年龄?

SELECT id, (MINUTE(TIMEDIFF(NOW(),IFNULL(history.createdAt,0)))) AS age 
FROM history 
WHERE history.type = @type 

我试过DATEDIFF(),而不是TIMEDIFF(),我得到了0回到

知道为什么这查询不按预期行事?

UPDATE:

自省数据库后,我发现createdAt柱是date而不是datetime列。如果使用datetime列,代码将按预期工作。

回答

1

因此现在无法进行测试,但API说:

返回时间的分钟,在 范围为0〜59

mysql> SELECT MINUTE('2008-02-03 10:05:03'); 
     -> 5 

http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_minute

- 不是你想要做的。对TIMEDIFF的结果尝试TIME_TO_SEC(),并将其除以60以获得分钟数。

+0

我认为这是TIMEDIFF()函数。由于createdAt是日期时间字段,因此我切换到DATEDIFF()。现在值恢复为0.仍然不起作用,但距离更近一步。 – Mohamad 2011-02-17 23:28:39

相关问题