由于Android日期的格式无法与MySQL日期进行比较,因此必须首先转换它们。你可以用
STR_TO_DATE
为此,使用
LEFT
和
RIGHT
要剪切字符串的日、月和年部分,请执行以下操作:
SELECT *
FROM appsearch
WHERE username = 1 AND
(DATE(date) >= CURRENT_DATE - INTERVAL 200 DAY OR
STR_TO_DATE(CONCAT(LEFT(date, 10), RIGHT(date, 4)), '%a %b %e %Y') >= CURRENT_DATE - INTERVAL 200 DAY
)
ORDER BY COALESCE(DATE(date), STR_TO_DATE(CONCAT(LEFT(date, 10), RIGHT(date, 4)), '%a %b %e %Y')) DESC
Demo on dbfiddle
笔记
-
截止日期
要求格式字符串中的文字字符完全匹配,因此您可能需要多个不同的格式字符串(例如
EDT
PST
,等等)来转换它们。
-
你需要换个房间
ORDER BY
子句使用
date
中正在使用的值
WHERE