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”
答
如果您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
有什么问题? – Reimeus
该连接的结果不是有效的SQL。你检查了结果SQL语句吗?另外,你是否知道按这种差异进行排序与按COLUMN_DATE的值进行排序相同? –
我目前正在从列表视图访问我的sql数据库并按日期排序。像这样,SELECT * FROM TABLE_GAMES WHERE COLUMN_SPORT_TYPE =“basketball”ORDER BY COLUMN_DATE ;.这确实有效,但我现在试图订购相对于当前日期的日期。现在1月1日的方式总是我的列表视图中的第一件事,而不是最接近当前日期的。 – ethan