如何在 MySQL 中处理特定格式的日期排序?
当涉及到 MySQL 中的日期排序时,典型的方法是对 YYYY-MM-DD 等格式使用 DESC 修饰符。但是,在处理不同的日期格式(例如 DD/MM/YYYY)时,会出现混乱。
在以 DD/MM/YYYY 格式排序日期的特定情况下,提供的查询无法按预期工作。该查询尝试将 DATE_FORMAT 函数直接应用于 DATE_FORMAT(Date, '%Y%m%d') 表达式,这与所需的结果不符。
要解决此问题,您有两个方法主要选项:
仅格式化输出日期:如果目标只是要以 DD/MM/YYYY 格式显示日期而不更改实际日期值,可以使用以下查询:
SELECT *, DATE_FORMAT(date,'%d/%m/%Y') AS niceDate FROM table ORDER BY date DESC LIMIT 0,14
在此查询中,DATE_FORMAT 函数应用于带有 ' 的日期列数据检索过程中的 %d/%m/%Y' 格式。结果将以所需的格式显示日期,同时保持基础日期值不变。
实际按日、月和年排序:如果您确实想要要按照 DD/MM/YYYY 建议按日、月、年对结果进行排序,您将需要使用自定义比较函数。此函数将提取日期的各个组成部分并执行字典顺序比较。下面是实现此方法的示例查询:
SELECT * FROM table ORDER BY FORMAT_DAYOFMONTH(Date), FORMAT_MONTH(Date), FORMAT_YEAR(Date) DESC LIMIT 14
以上是如何在 MySQL 中正确排序 DD/MM/YYYY 格式的日期?的详细内容。更多信息请关注PHP中文网其他相关文章!