SQL WHERE子句:按字符串的日期排序

时间:2013-09-05 15:30:43

标签: php mysql sql string date

我的数据库表中有一个列,其格式为(mmm-yy)Ex:Aug-13。我想在6月12日之后选择所有日期。问题是列是一个字符串所以当我说WHERE列> 'Jun-12'它给我的值按字母顺序大于6月12日,比如5月12日,这不是我想要的。关于如何解决这个问题的任何想法?

2 个答案:

答案 0 :(得分:1)

在这种情况下,您应该能够转换为日期,然后根据需要进行过滤,以下代码应该为您提供指南,

SELECT *
FROM Table
WHERE CAST('01-' + column AS DATETIME) > '01-JUN-12'

答案 1 :(得分:1)

将日期存储为日期,而不是字符串。这是推荐的方法,我建议相应地更改代码。

在这种情况下,您可以使用STR_TO_DATE函数来动态比较日期:

SELECT * FROM table_name WHERE column > STR_TO_DATE('Jun-12','%m-%y');

希望这有帮助!