【发布时间】:2014-02-22 19:24:17
【问题描述】:
我正在尝试在两个日期之间进行查询。日期输入为String 格式,%d/%b/%y,从选择框中获取。
SELECT * FROM `Data`
WHERE DATE_FORMAT(`date`, '%d/%b/%Y')
BETWEEN '25/Feb/2008' AND '04/Mar/2008'
我没有从上面的查询中得到任何结果。但是,以下查询给了我一些结果:
SELECT * FROM `Data`
WHERE DATE_FORMAT(`date`, '%d/%b/%Y')
BETWEEN '25/Feb/2008' AND '28/Feb/2008'
我认为问题的发生是因为它比较了文本而不是 Date 格式。我一直在寻找一个小时。任何帮助将不胜感激。
编辑:最后,我找到了如下解决方案。
SELECT * FROM `Data`
WHERE DATE(`Begin`) BETWEEN STR_TO_DATE('25/Feb/2008', '%d/%b/%Y') AND
STR_TO_DATE('04/Feb/2008', '%d/%b/%Y')
【问题讨论】:
-
这是从前到后的。此外,您有一个 STRing,您想将其解释为 DATE(看看我在那里做了什么?)