2015-01-16 75 views
0

我試圖從兩個特定日期之間的表中顯示數據,日期格式是時間戳。如何以日期格式顯示兩個特定日期之間的數據作爲時間戳

此查詢工作正常,沒有日期。

SELECT table1.username,COUNT(table2.userid) as total FROM table2 INNER JOIN table1 
ON table1.userid = table2.userid GROUP BY table1.username 
     ORDER BY COUNT(table2.userid) DESC 

我正在使用以下查詢來獲取兩個特定日期之間的數據。但它並不顯示任何內容

SELECT table1.username,COUNT(table2.userid) as total FROM table2 
    WHERE table2.date between '2015-01-0' and '2015-01-30' INNER JOIN table1 ON 
table1.userid = table2.userid GROUP BY table1.username 
     ORDER BY COUNT(table2.userid) DESC 
+1

您是否真的在代碼中編寫'2015-01-0'和'2015-01-30'之間',還是在您的問題中存在拼寫錯誤?包容性之間,你應該給它兩端存在的日期。 – Air

+0

@AirThomas有樣本日期...這個查詢工作正常,如果我這樣做:SELECT * FROM表中'2015-01-0'和'2015-01-30'之間的日期。 我需要得到用戶名,所以我想讓它按照上面提到的方式工作 –

+0

''2015-01-0''不是有效的日期...你的意思是'2015-01-1'? – Machavity

回答

0

嘗試

SELECT table1.username,COUNT(table2.userid) as total 
FROM table2 
INNER JOIN table1 ON table1.userid = table2.userid 
WHERE table2.date between '2015-01-0' and '2015-01-30' 
GROUP BY table1.username 
    ORDER BY COUNT(table2.userid) DESC 

我猜猜寫加盟條款之前我們不能使用。

+0

這一直奏效。你想解釋WHERE子句的這種行爲,爲什麼它沒有工作的第一個地方? –

+0

,因爲您在編寫JOIN語句後出錯了。首先我們編寫所有的JOIN語句,然後寫入where子句。按照你的方式編寫,你需要把它寫成一個SubQuery,比如'Select T1.name,T2.id From(選擇*從表2中選擇'2015-01-0'和'2015-01-30'之間的日期) T2 INNER JOIN Table1 as T1 ....「請注意,如果我的回答有幫助:) – Gurpreet

+0

只要改變位置就可以了 –

相關問題