2011-10-27 22 views
5

tôi muốn nhóm dữ liệu của tôi theo tuần, nhưng tuần bắt đầu ở đây vào chủ nhật. làm thế nào tôi có thể nhóm tuần của tôi từ thứ hai đến chủ nhật?tuần mysql từ thứ Hai đến Chủ Nhật

Đây là câu hỏi của tôi:

SELECT YEARWEEK(dateStats) k,dateStats udate, COUNT(f_shop) sales 
FROM sal_import WHERE dateStats BETWEEN "2011-08-15" AND "2011-08-21" GROUP BY YEARWEEK(dateStats) 

Các Giữa có một ngày từ thứ hai đến chủ nhật và tôi cần chỉ là một hàng ở kết quả.

Thank you very much

+0

Tôi cho rằng đó là bản sao: http://stackoverflow.com/questions/1202919/mysql-dayofweek-my-week-begins-with-monday – Moyshe

+0

@Moyshe Không - không phải vậy. – hsz

Trả lời

18

Đối số thứ hai của YEARWEEK(date[,mode]) chức năng là mode - như trong WEEK(date[,mode]) chức năng.

Bạn có thể chỉ định ngày bắt đầu - mặc định là 0 (Sunday).

Chỉ cần đặt nó vào 1 (Monday):

YEARWEEK(dateStats, 1) 
+0

rất goog, cảm ơn bạn! – user954740

+0

Đây thực sự là cách tuyệt vời, loại vấn đề này làm phiền tôi đôi khi – zhihong

0

Bạn có thể thiết lập một biến toàn cầu cho mục đích này:

More Info

Nếu bạn là lười biếng nó

--default_week_format=1 
+0

Thật không may là không. Điều này là không thể vì [lỗi này] (http://bugs.mysql.com/bug.php?id=30454). –

0

tôi sẽ khuyên bạn nên sử dụng thứ nguyên ngày cho loại công việc này. Điều này cho phép bạn chỉ định các thuộc tính khác nhau cho các ngày, chẳng hạn như "Ngày trong tuần", "Cuối tuần", "Số tuần", "Khu phố tài chính", v.v.

Xem câu trả lời của tôi cho câu hỏi sau để biết thêm thông tin;

Select all months within given date span, including the ones with 0 values

Sau đó, bạn có thể tạo các cột với cả hai giá trị kiểu nămTuần khác nhau, tham gia dữ liệu của bạn vào bảng kích thước, và tạo ra kết quả cho cả hai trong số họ mà không cần phải thay đổi cài đặt vv

Hy vọng rằng điều này sẽ giúp bạn phần nào!

Các vấn đề liên quan