MySQL从数据库中选择周范围

时间:2013-02-01 15:20:33

标签: mysql sql week-number

在我的数据库中,我存储周数和相关年份。例如:

id | week | year | text
---+------+------+-----------
 1 |  23  | 2012 | hello
 2 |  27  | 2012 | something
 3 |  39  | 2012 | more text
 4 |  43  | 2012 | more text

然后在前端,用户可以选择一周和一年,然后我希望能够返回该范围之间的所有记录。例如,在第25周至2012年和第50周至2012年之间进行选择将返回最后3条记录。

我不确定是否也会更容易同时保持一周的第一个日期并搜索此内容,或者是否有方法可以轻松搜索周数。

提前致谢。

3 个答案:

答案 0 :(得分:4)

据推测,即使年份不同,您也需要连续几周。要做到这一点,一些算术会有所帮助:

select text
from dates
where year*100 + week between $weekmin+$yearmin*100 and $weekmax+$yearmax*100 

为了进行比较,这将2012年第7周转换为“201207”。

答案 1 :(得分:1)

因为MySQL支持comparison operators,所以这项任务非常简单:

SELECT text FROM `dates` WHERE week>=$weekmin AND week<=$weekmax AND year>=$yearmin AND year<=$yearmax ORDER BY year DESC, month DESC

答案 2 :(得分:0)

SELECT * 
FROM yourtable
WHERE week >= User_input1_week
AND week <= User_input2_week
AND year >= User_input1_year
AND year <= user_input2_year

这可能会奏效。

  

我不确定是否更容易保持第一次约会   也可以搜索这一周或者是否有搜索方法   好几个星期。

使用列的DATE类型可能是一个更好的举措。