chciałbym mieć numer tygodnia i roku, na dany dzień, z MySQL z następującymi zasadami:Koniec roku z MySQL
- Jeśli data jest na koniec bieżącego roku, ale w pierwszym tygodniu następnego roku muszę zwrócić 1 jako numer tygodnia.
- Jeśli data jest na początku roku, ale w ostatnim tygodniu poprzedniego roku, muszę zwrócić 52 (lub 53) jako numer tygodnia.
Czytałem funkcję tygodnia w MySQL, ale nie mogę uzyskać pożądanego rezultatu.
Date and Time Functions: WEEK(date[,mode])
jestem na francuskim kalendarzu, więc muszę zacząć tydzień w poniedziałek i tydzień 1 jest pierwszym tygodniu z więcej niż 3 dni w tym roku.
Dlatego mogę korzystać tylko z opcji 1 i 3.
Kiedy piszę następujące zapytania:
wybierz tydzień ('2012-12-31', 3), wynik 1
wybierz tygodni ('2012-12-31', 1), wynik jest 53
Kiedy testować na 1 Styczeń 2016:
wybierz tygodni ('01.01.2016', 3), wynik jest 53
wybierz tygodni ('01.01.2016', 1), wynik jest 0
Opcja 1 nie może być używana, ponieważ nie mogę wykryć, że 2012-12-31 jest w przyszłym roku.
Wariant 3 może być używany, ale mam dodać dwa kawałki logiki: jeśli weeknumber = 1 miesiąc = 12 lat + 1, a jeśli weekumber = 53, a miesiąc = 1 wtedy rok - 1
Does ktoś ma lepsze rozwiązanie?
Pozdrowienia
Nie jestem do końca jasne o zasady, ale co o trybie 7? – deadly
Tryb 7 jest "z poniedziałkiem w tym roku", więc nie mogę go użyć ... nie jest zgodny z francuskimi zasadami. na moje potrzeby, jeśli 1/1/2013 to tydzień 1 i jest to dzień powszedni, chciałbym mieć 12/31/2011 tydzień 1 + rok 2012. Myślę, że muszę użyć IF –