SQL查询从指定月份获取记录

时间:2015-03-23 08:06:13

标签: mysql sql

以下是来自表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查询可以使用?...

2 个答案:

答案 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;

Sample SQL Fiddle

但你不应该以这种方式存储日期类型数据;最好将它存储为正确的日期,并在查询中提取所需的部分,并让前端处理格式化。

答案 1 :(得分:0)

您必须将varchar转换为日期(使用您使用的格式),然后您可以比较它(否则比较是词典)

"Select * from trail_db where STR_TO_DATE(months, '%M-%Y') between 'April-2014' and 'Mar-2015'";