以下是来自表trail_db
的数据id | Name | months | salary
_________________________________________
1 | abc | April-2014 | 200.00
2 | pqr | May-2014 | 200.00
3 | lmn | June-2014 | 200.00
...
11 | cvb | Feb-2015 | 200.00
12 | sdg | Mar-2015 | 200.00
如何选择2014年4月至2015年3月的记录。
我尝试过查询,
从trail_db中选择*,其中月份为' 2014年4月'和' 2015年3月'
但它无法正常工作。哪个SQL查询可以使用?...
答案 0 :(得分:3)
这应该有效:
Select *
from trail_db
where STR_TO_DATE(months,'%M-%Y') + 1
between STR_TO_DATE('April-2014','%M-%Y') + 1
and STR_TO_DATE('Mar-2015','%M-%Y') + 1
order by STR_TO_DATE(months,'%M-%Y') + 1;
但你不应该以这种方式存储日期类型数据;最好将它存储为正确的日期,并在查询中提取所需的部分,并让前端处理格式化。
答案 1 :(得分:0)
您必须将varchar转换为日期(使用您使用的格式),然后您可以比较它(否则比较是词典)
"Select * from trail_db where STR_TO_DATE(months, '%M-%Y') between 'April-2014' and 'Mar-2015'";