0
我有兩個表,任務和操作。動作有兩列,created_at和updated_at。任務有一個列started_at根據日期選擇行
我怎麼可以這樣做
SELECT MAX(UNIX_TIMESTAMP(tasks.started_at)) AS started_at, action . *
FROM tasks, action
WHERE UNIX_TIMESTAMP(action.created_at) > started_at
OR UNIX_TIMESTAMP(action.updated_at) > started_at
試圖選擇具有比MAX(tasks.started_at)更大created_at或全部的updated_at行動
''starting_at' a'TIMESTAMP'格式?然後,避免在'WHERE'子句中使用函數,直接比較時間戳,並將MAX(UNIX_TIMESTAMP(tasks.started_at))'改爲'UNIX_TIMESTAMP(MAX(tasks.started_at))'。 – Tadeck
'started_at'是'DATETIME',而不是'TIMESTAMP'。你是什麼意思直接比較? – tipu
我的意思是你可以直接比較'TIMESTAMP'值(以及'DATETIME',但是不同日期/時間類型的比較可能因時區問題而變得棘手),而不需要將它們轉換爲Unix紀元。你也可以使用'MAX()'從'TIMESTAMP'和'DATETIME'列中獲取最高和最低值,而不需要將它們轉換爲Unix紀元。 – Tadeck