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


SQL WHERE clause: sort by date for string

我的数据库表中有一列,其中保存格式为 (mmm-yy) 的日期,例如:Aug-13。我正在尝试选择 6 月 12 日之后的所有日期。问题是该列是一个字符串,因此当我说 WHERE 列>"Jun-12"时,它给我的值按字母顺序大于 Jun-12,例如 5 月 12 日,这不是我想要的。关于如何做到这一点的任何想法?

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

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

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

希望这有帮助!

在这种情况下,

您应该能够转换为日期,然后根据需要进行过滤,下面的代码应该为您提供指导,

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