有一种格式的日期(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';
它什么都不返回
事情:我无法更改日期格式,我必须在两个日期之间获得价格。这样做有简单的方法吗?
答案 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所写,使用日期类型要好得多。