我有這樣的一個表:判斷日期爲「昨天」,「上週」等
// mytable
+----+------------+
| id | date_time |
+----+------------+
| 1 | 1464136759 | -- 5 days ago
| 2 | 1464436759 | -- 2 days ago
| 3 | 1464538248 | -- 6 hours ago
+----+------------+
-- ^these are based on current time which is 1464561158
我也有這個疑問:
SELECT id, CASE DATE(FROM_UNIXTIME(date_time))
WHEN CURDATE() THEN 'today'
WHEN CURDATE() - INTERVAL 1 DAY THEN 'yesterday'
WHEN CURDATE() - INTERVAL 7 DAY THEN 'in last week'
ELSE 'in last month or more'
END range
FROM mytable
WHERE 1
這裏是電流輸出:
+----+---------------+
| id | range |
+----+---------------+
| 1 | in last month |
| 2 | in last month |
| 3 | yesterday |
+----+---------------+
正如你看到我的問題,選擇所有這些unix時間錯誤。爲什麼以及如何修復它?
這裏是預期輸出:
+----+--------------+
| id | range |
+----+--------------+
| 1 | in last week |
| 2 | yesterday |
| 3 | today |
+----+--------------+
您的代碼在SQL Fiddle中工作(如此):http://www.sqlfiddle.com/#!9/e63fd/3。由於第三種情況,代碼不正確,但確實會產生預期的輸出。 –
時間戳只與DATE有關,直到DATE,這可能不是很有趣。將其從問題中刪除以澄清問題/範圍。 – user2864740
@ user2864740我不明白你是什麼意思.. –