BETWEEN涉及不受支持的日期格式的解决方法?

时间:2014-04-13 12:50:16

标签: mysql sql

有一种格式的日期(varchar(30)),就像这样

d.m.y

,其中

day = a day without leading zeros
m   = a month with leading zeros
y   = last two numbers of a year

一张表,看起来像这样

id | date     | price

1  | 7.04.14  | 10

2  | 8.04.14  | 20

3  | 9.04.14  | 30

执行查询时

SELECT `price` FROM `table` WHERE `date` BETWEEN '7.04.14' AND '9.04.14';

它什么都不返回

事情:我无法更改日期格式,我必须在两个日期之间获得价格。这样做有简单的方法吗?

1 个答案:

答案 0 :(得分:2)

只需解析日期。

SELECT price
  FROM `table`
 WHERE STR_TO_DATE(`date`, '%d.%m.%y')
       BETWEEN STR_TO_DATE(...) AND STR_TO_DATE(...)

另外,请考虑查看the manual page for STR_TO_DATE

但正如@juergen所写,使用日期类型要好得多。