我有一个 MySQL 数据库,其中一个表包含一列 (VARCHAR),该列的日期以这种格式存储:d.m.Y(即 09.11.2019)。
我需要读出不同的日期,限制 10 个,最新日期。
我尝试了这段代码,但它只按 d 排序,而不是 m 或 Y。
SELECT DISTINCT date FROM tbl ORDER BY date DESC LIMIT 10
最佳答案
您可以使用 mysql date function str_to_date()
将日期字符串转换为日期:
select distinct date from tbl order by str_to_date(date, '%d.%m.%Y') desc limit 10
格式说明符:
%d
:一月中的某一天,数字 (01..31)%m
:月份,数字 (01..12)%Y
:年份,数字,四位数字
注意:一般来说,始终使用类似日期的数据类型(date
、datetime
)来表示数据库中的日期。将日期存储为字符串会在很多方面困扰您。
关于mysql - 无法处理数据库中存储的日期、日期格式、选择不同和排序方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58782653/