如何使用mysqli获取每条记录中日期对应的周数?
获取日期对应的周数并正确处理查询结果
看起来你已经找对了大致方向,不过有几个小细节可以调整,让结果处理更清晰直观:
1. 修正SQL语句的小疏漏
你的SQL里写了YEAR(beginn),但你的表列是date,得改成YEAR(date)才对;同时建议给周数列起个别名,后续读取结果时可读性会强很多:
$sql = 'SELECT WEEK(date) AS week_number FROM table1 WHERE YEAR(date) = "2018"';
2. 更友好的结果处理方式
用fetch_array()时,既可以用索引($row[0])也可以用关联键名(比如我们刚才起的week_number),后者能让代码更易懂。另外,输出的时候可以给每个周数加个分隔,避免结果挤在一起:
$db_erg = mysqli_query($con, $sql); // 先检查查询是否成功,避免出错 if (!$db_erg) { die('查询出错: ' . mysqli_error($con)); } while ($row = $db_erg->fetch_array()) { // 用关联键名读取,逻辑更清晰 echo '对应周数:' . $row['week_number'] . '<br>'; }
补充小提示
- MySQL的
WEEK()函数默认把周日作为一周的第一天,如果你需要以周一为一周起始,可以用WEEK(date, 1),具体参数可以根据你的需求调整。 - 你的两条测试数据:
2018-03-14对应第11周,2018-05-14对应第20周,执行上面的代码就能得到这两个结果啦。
内容的提问来源于stack exchange,提问作者user9554121
相关产品推荐
相关产品推荐

