Bạn đang đi đúng hướng về cách MySQL hoạt động, có nhiều chế độ khác nhau cho các chức năng liên quan đến tuần có thể tạo ra các kết quả khác nhau. http://dev.mysql .com / doc / refman / 5.5 / en / date-and-time-functions.html # function_week
Theo tôi hiểu thì chế độ MySQL tương đương với logic ngày của PHP là chế độ 3, là tiêu chuẩn ngày theo tuần ISO http://en.wikipedia.org/wiki/ISO_week_date
Điều này có các tuần bắt đầu vào Thứ Hai và các tuần được đánh số từ 1-53.
Vì vậy, bạn sẽ cần sử dụng WEEK(date_field, 3)
để nhận các giá trị tương thích với PHP.
Là một cách tiếp cận thay thế, một điều tôi thấy hữu ích trong trường hợp bạn cần khả năng truy vấn linh hoạt trên các phạm vi ngày hoặc tổng hợp khác nhau (Q1- Q4, H1 - H2, v.v.) hoặc nơi bạn có thể cần sử dụng các tuần khác PHP hỗ trợ là sử dụng bảng trợ giúp ngày trong MySQL (tương tự như những gì người ta có thể sử dụng làm bảng thứ nguyên ngày trong kho dữ liệu, nếu bạn đã quen với điều đó). Nó có thể cung cấp cho bạn một bảng thuận tiện để kết hợp với nhau để tra cứu phạm vi ngày. Một cái gì đó như thế này sẽ hoạt động:
http://databobjr.blogspot.com /2012/06/create-date-dimension-table-in-mysql.html