我陷入了这个问题。我有一个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()
将日期字符串转换为日期:
str_to_date()
格式说明符:
select distinct date from tbl order by str_to_date(date, '%d.%m.%Y') desc limit 10
:月份中的一天,数字(01..31)%d
:月,数字(01..12)%m
:年,数字,四位数NB:通常来说,始终使用类似日期的数据类型(%Y
,date
)来表示数据库中的日期。将日期存储为字符串will会以多种方式叮咬您。