1

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

4

2 回答 2

1

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

SELECT *
FROM Table
WHERE CAST('01-' + column AS DATETIME) > '01-JUN-12'
于 2013-09-05T15:39:30.873 回答
1

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

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

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

希望这可以帮助!

于 2013-09-05T15:39:45.387 回答