2017-03-03 80 views
-4

SELECT *,DATEDIFF(COLUMN_DATE,CURDATE())AS DIFF FROM TABLE_GAMES ORDER BY CASE WHEN diff的< 0 THEN 1 ELSE 0 END,DIFFSQL查詢順序

試圖通過訂購我的SQL數據庫與當前日期相關的日期。 COLUMN_DATE的格式爲yyyy-mm-dd。出於某種原因,上述查詢按照我希望的方式在SQL小提琴中工作,但不在Android Studio中。

「SELECT *,DATEDIFF(」 + COLUMN_DATE + 「CURDATE())AS DIFF FROM 」+ TABLE_GAMES +「 ORDER BY CASE WHEN diff的< 0 THEN 1個ELSE 0 END,DIFF」

+0

有什麼問題? – Reimeus

+0

該連接的結果不是有效的SQL。你檢查了結果SQL語句嗎?另外,你是否知道按這種差異進行排序與​​按COLUMN_DATE的值進行排序相同? –

+0

我目前正在從列表視圖訪問我的sql數據庫並按日期排序。像這樣,SELECT * FROM TABLE_GAMES WHERE COLUMN_SPORT_TYPE =「basketball」ORDER BY COLUMN_DATE ;.這確實有效,但我現在試圖訂購相對於當前日期的日期。現在1月1日的方式總是我的列表視圖中的第一件事,而不是最接近當前日期的。 – ethan

回答

0

如果您column_date以DATE格式使用此查詢:

SELECT * 
FROM TABLE_GAMES 
ORDER BY column_date DESC 

如果您的column_date是varchar,則需要將其轉換爲DATE格式。如果列日期由於某種原因未被轉換爲DATE,則此查詢將不會執行。

SELECT * 
FROM TABLE_GAMES 
ORDER BY 
CONVERT(DateTime, column_date,112) DESC 

DATE格式

101 mm/dd/yy 
111 yy/mm/dd 
112 yyymmdd 

您可能需要使用不同的CONVERT按您的要求。

+0

我編輯了我原來的問題,我想人們誤解了它。 – ethan