SQL查询顺序

SQL查询顺序

问题描述:

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

如果您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