代码之间的Mysql没有显示正确的输出

时间:2016-03-09 00:52:19

标签: mysql sql between

我编写了一个查询来获取特定月份和年份之间的数据与另一个月份和年份。

例如,我想在 2014年11月 2015年11月之间获取数据。

但是,我的查询仅显示2014年11月和2015年11月的输出。

这两个日期之间的数据未显示。以下是我的询问:

SELECT * FROM prc.tbictrepairsustainability 
WHERE sustainRegion = 'America' 
AND  (DATE_FORMAT(sustainDate, '%m %Y') BETWEEN '11 2014' AND  '11 2015')  ;

我的 SustainDate 列数据类型为日期

如果我的查询有问题,请纠正我。

由于

2 个答案:

答案 0 :(得分:0)

您需要将字符串转换为日期,以便将它们与表格中的日期进行比较。

SELECT *
FROM prc.tbictrepairsustainability 
WHERE sustainRegion = 'America' 
AND (sustainDate BETWEEN STR_TO_DATE('30 11 2014','%d %m %Y')       
AND STR_TO_DATE('30 11 2015','%d %m %Y'))

根据罗纳德的建议更新。

答案 1 :(得分:0)

我使用'%d %m %Y'将日期格式更改为STR_TO_DATE后才有效。

SELECT *
FROM prc.tbictrepairsustainability 
WHERE sustainRegion = 'America' 
AND sustainDate Between STR_TO_DATE('01 11 2014','%d %m %Y')       
AND   STR_TO_DATE('30 11 2015','%d %m %Y')