选择开始年份和开始月份到结束年份和结束月份之间的数据?

时间:2016-09-16 11:34:36

标签: php mysql sql

我正在尝试选择给定年份和月份范围的行。 (i.e.: from <start year>+<start month> to <end year>+<end month>).

我使用了下表。

Id  Page_id Url Score   Month   Year
1   1      Link  192     4      2015
2   1      Link  247     5      2015
3   1      Link  304     6      2015
4   1      Link  283     7      2015
.                   
.                   
10  1      Link  288     1      2016
11  1      Link  295     2      2016
12  1      Link  393     3      2016

我从( <5+2015> to <2+2016> )获取数据。 我尝试了下面的查询,但我得到了意想不到的行。我错过了什么吗?

SELECT * FROM `readability` AS t WHERE  t.url
       BETWEEN STR_TO_DATE(CONCAT('5', '2015'), '%Y%m') AND 
               LAST_DAY(STR_TO_DATE(CONCAT('2', '2016'), '%Y%m'));

2 个答案:

答案 0 :(得分:1)

是的,你似乎错过了很多。 url与您想要的条件有什么关系。

据推测,你想要:

where year * 100 + month between 201505 and 201602

您的数据没有日期列。您可以将所有内容转换为日期,但整数(或字符串)比较就足够了。

答案 1 :(得分:0)

将有关日期的数据转换为日期mysql数据类型。

然后只需进行如下查询:

SELECT * FROM `readability` WHERE  (date_field BETWEEN '2015-01-05' AND '2016-01-02');