2011-02-17 60 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

相關問題