MySQL - 按字符串日期排序

Luk*_*den 1 mysql sql select date sql-order-by

我有一个元值正在加入我的帖子,这是日期.我希望能够只获得未来的帖子,但这个日期是一个varchar,格式为

dd-mm-yyyy
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所尝试的但似乎无法正常工作

select `posts`.*, `storage_varchars`.`meta_value`

from `posts` left join `storage_varchars` on 
       `posts`.`id` = `storage_varchars`.`post_id` 
where `parent_id` = 20 and 
         DATE(storage_varchars.meta_value) >= NOW() 
order by DATE(storage_varchars.meta_value) asc
Run Code Online (Sandbox Code Playgroud)

Sah*_*hah 6

使用STR_TO_DATE()函数:

试试这个:

SELECT p.*, s.meta_value
FROM posts p 
LEFT JOIN storage_varchars s ON p.id = s.post_id 
WHERE parent_id = 20 AND STR_TO_DATE(s.meta_value, '%d-%m-%Y') >= CURRENT_DATE() 
ORDER BY STR_TO_DATE(s.meta_value, '%d-%m-%Y') ASC;
Run Code Online (Sandbox Code Playgroud)