14
SQL Serverで週の最初の日を取得する
集計した日付を週の最初の日として保存し、レコードを週ごとにグループ化しようとしています。ただし、日付を四捨五入するために使用する標準的な手法は、週では正しく機能しないようです(ただし、日、月、年、四半期、および私が適用した他の時間枠では機能します)。 SQLは次のとおりです。 select "start_of_week" = dateadd(week, datediff(week, 0, getdate()), 0); これは2011-08-22 00:00:00.000、日曜日ではなく月曜日であるを返します。を選択すると、日曜日のコードであるが@@datefirst返される7ので、サーバーは私の知る限り正しくセットアップされます。 上記のコードを次のように変更することで、これを簡単にバイパスできます。 select "start_of_week" = dateadd(week, datediff(week, 0, getdate()), -1); しかし、私がそのような例外を作らなければならないという事実は、私を少し不安にさせます。また、これが重複する質問である場合はお詫び申し上げます。私はいくつかの関連する質問を見つけましたが、この側面に特に対処するものはありませんでした。