以前に質問を投稿しましたが、適切に回答され、YEARWEEK()関数がデフォルトのモードであるゼロを使用していて、望まない結果が得られていることがわかりました。モードに関してWEEKを参照しているYEARWEEKのマニュアルを読みましたが、モード引数が使用されていない場合は、default_week_format値が使用されると書かれていました。モード6が必要であると判断したため、変数を6に変更するために必要な手順を実行しました。ただし、この変更の影響を受けるのはWEEK()関数のみです。
次の結果が得られます。
SELECT YEARWEEK(NOW())
201301
SELECT YEARWEEK(NOW(), 6)
201302
SELECT WEEK(NOW())
2
SELECT WEEK(NOW(), 6)
2
これはMySQLの問題ですか、それとも私が間違っていることはありますか?マニュアルを数回読んだところ、YEARWEEKの説明で、「mode引数はWEEK()のmode引数とまったく同じように機能する」と具体的に述べられています。ただし、(WEEKの説明のように)具体的には、「mode引数を省略すると、default_week_formatシステム変数の値が使用されます」とは明記されていません。
何も提供されていない場合、YEARWEEK()は変数の値を使用するべきではありませんか、それとも私はその点で間違っていますか?特に、説明のこの特定の部分で一方が他方を参照しているため、これら2つの関数は同じように動作する必要があるように思われます。