2017-03-09 56 views
0

我在sales表這個記錄之間進行選擇。MySQL的2個日期(存儲爲INT時間戳)

SELECT SUM(`amount`) 
FROM `sales` 
WHERE `time` 
BETWEEN DATE_SUB(1488949200, INTERVAL 30 DAY) AND 1488949200; 

我應該怎麼修改,以獲得期望的結果10?

需要說明的一點是:查詢應返回介於(1488949200 - 30天)和1488949200之間的所有記錄之和,在這種情況下,應返回10,因爲記錄的時間戳記介於這兩個不同的日期之間。

+0

見http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for什麼似乎對我來說是一個非常簡單的sql查詢 – Strawberry

回答

2

使用FROM_UNIXTIME()轉換秒以來的劃時代實際日期:

SELECT SUM(amount) 
FROM sales 
WHERE FROM_UNIXTIME(time) BETWEEN 
     DATE_SUB(FROM_UNIXTIME(1488949200), INTERVAL 30 DAY) AND 
     FROM_UNIXTIME(1488949200); 
+0

我仍然得到NULL結果時,使用此。 –

+0

查看原始查詢中範圍的界限......兩者相同,並且您的數據點在這些界限之外。 –

+0

兩者都是相同的,因爲它是(DATE - 30天)和DATE之間30天的間隔,記錄的「時間」實際上是在這之間。 –