在我的表格中有一个用于周和日期的列。如何在2015 周 52到2016 周 2之间获取数据。 抱歉我的英语不好:(
答案 0 :(得分:5)
尝试此查询可以解决您的问题。
SELECT *
FROM TABLE
WHERE (WEEK(date)>=52 AND YEAR(date)=2015) OR
(WEEK(date)<=2 AND YEAR(date)=2016);
答案 1 :(得分:1)
这是一种替代解决方案,您无需在数据库中记录周数,因为Sadikhassan已经为OP的原始请求提供了解决方案
无需为您的周数维护单独的列。只需记录日期并丢失周数列。当您使用PHP作为前端时,您可以使用此方法从您想要的周数和年份中获取日期。
$range_start = new DateTime();
$range_start->setISODate($year,$week_no);//give 2015 and 52 here
echo $range_start->format('d-M-Y'); // 21 DEC 2015
$range_end = new DateTime();
$range_end->setISODate($year,$week_no);//give 2016 and 2 here
echo $range_end->format('d-M-Y'); //11 January 2016
//IDK if this is necessary because I don't work in PHP but I am gonna convert it to strings
$start_date_str = $range_start->format('d-M-Y');
$end_date_str = $range_end->format('d-M-Y');
现在您已经获得了各自的开始和结束日期,您可以使用它们来查询:
$result = mysql_query("SELECT * FROM YOURTABLE WHERE date >= '" . $start_date_str . "' AND date <= '" . $end_date_str . "' ORDER by id DESC");