2017-08-13 40 views
1

日曜日のSQLサーバー設定を週の最初の曜日とする問題があります(読んでいるだけではありません)。しかし、私の会社は、月曜日から日曜日の期間をカバーする週を必要としています。 SET DATEFIRST 1を試しましたが、結果には影響しません。簡単な例:今日は日曜日です。私はSQLで次のコードを入力すると、それは週に33になりますが、それは週32示さなければならない、と週33が明日から開始する必要があります:私はイギリス英語、ビットに私のログイン設定で言語を変更しSQL Server:月曜日が週の始まりになる

SET DATEFIRST 1 
Select DatePart(week, getdate()); 

それはうまくいきませんでした。設定を変更する他の方法はありますか?それはどのようにして、上句を変換することが可能であるよりも、私は世界的に、設定を変更できない場合

WHERE Week = (Select DatePart(week, getdate())-1) 

:私は同様のwhere句で、先週の結果を表示する必要が私のクエリのほとんどで このように、月曜日から日曜日までの結果を表示するには?私はSQLの初心者ですが、インターネットで答えを探しましたが、自分のコードに適応できませんでした。前もって感謝します!

+0

SET DATEFIRST 1を設定した後、 'DATEPART(ISO_WEEK、...)'を試しましたか? –

+0

はい、今は動作しています!私は注意したように、WEEKをISO_WEEKに置き換えただけです。SET DATEFIRST 1を追加しなくても、32週目になります。英語を英国の英語に変更したのかもしれません。どうもありがとうございます! :) –

答えて

2

SET DATEFIRST 1を設定した後にDATEPART(ISO_WEEK, ...)を使用してください。これは、DATEPART documentationに記載されているように、ISO週番号を守るべきです。

関連する問題