Tôi muốn có số tuần và năm, cho một ngày nhất định, từ MySQL với các quy tắc sau:Kết thúc năm với Mysql
- Nếu ngày là vào cuối năm nay, nhưng trong tuần đầu tiên của năm tiếp theo, tôi cần trả về 1 là số tuần.
- Nếu ngày vào đầu năm, nhưng trong tuần cuối cùng của năm trước, tôi cần trả về 52 (hoặc 53) làm số tuần.
Tôi đã đọc hàm tuần trong MySQL nhưng tôi không thể nhận được kết quả mình muốn.
Date and Time Functions: WEEK(date[,mode])
tôi trên lịch Pháp, vì vậy tôi phải bắt đầu tuần vào thứ hai và tuần 1 là tuần đầu tiên với hơn 3 ngày trong năm nay.
Vì vậy, tôi chỉ có thể sử dụng tùy chọn 1 và 3.
Khi tôi viết các truy vấn sau đây:
chọn tuần ('2012/12/31', 3), kết quả là 1
chọn tuần ('2012/12/31', 1), kết quả là 53
Khi tôi thử nghiệm trên 1 Tháng 1 năm 2016:
chọn tuần ('2016/01/01', 3), kết quả là 53
chọn tuần ('2016/01/01', 1), kết quả là 0
Tùy chọn 1 không thể sử dụng được, vì tôi không thể phát hiện ra rằng 2012-12-31 là trong năm tiếp theo.
Lựa chọn 3 có thể được sử dụng, nhưng tôi có thêm hai miếng của logic: nếu weeknumber = 1 và tháng = 12, năm + 1 và nếu weekumber = 53 và tháng = 1 sau đó năm - 1
Liệu ai đó có một giải pháp tốt hơn?
Kính trọng
Tôi không chính xác rõ ràng về quy tắc của bạn, nhưng những gì về chế độ 7? – deadly
chế độ 7 là "với một thứ hai trong năm nay", vì vậy tôi không thể sử dụng nó ... nó không tuân theo các quy tắc của Pháp. theo nhu cầu của tôi nếu 1/1/2013 là tuần thứ 1 và đó là một ngày thứ ba, tôi muốn có 12/31/2011 tuần 1 + năm 2012. Tôi nghĩ rằng tôi phải sử dụng IF –