0

SQL Server2008R2を使用しています。日曜日の週番号を取得する必要があり、すでにクエリがありますが、間違ったデータが表示されます。私に何ができる ?

1ではなく2が表示されます。たとえば、2013年1月6日(WeekNo-1)

私の質問は

SELECT DATEPART (week, '01-13-2013 23:59:59.000' ) As WeekNo1 ,  
  DATEPART (week, '01-06-2013 23:59:59.000' ) As WeekNo2 ,  
  DATEPART (week, '12-30-2012 23:59:59.000' ) As WeekNo3 ,  
  DATEPART (week, '12-23-2012 23:59:59.000' ) As WeekNo4 ,  
  DATEPART (week, '12-16-2012 23:59:59.000' ) As WeekNo5 ,  
  DATEPART (week, '12-09-2012 23:59:59.000' ) As WeekNo6 
4

2 に答える 2

2

DATEFIRSTプロパティを週の開始日に設定する必要があります。これは、週の最初の日を指定します。

サーバーの最初の曜日を判別するには、以下を使用します。

SELECT @@DATEFIRST

次に、値を変更する必要がある場合は、次を使用します。

SET DATEFIRST 1;

SELECT DATEPART (week, '01-13-2013 23:59:59.000' ) As WeekNo1 ,  
  DATEPART (week, '01-06-2013 23:59:59.000' ) As WeekNo2 ,  
  DATEPART (week, '12-30-2012 23:59:59.000' ) As WeekNo3 ,  
  DATEPART (week, '12-23-2012 23:59:59.000' ) As WeekNo4 ,  
  DATEPART (week, '12-16-2012 23:59:59.000' ) As WeekNo5 ,  
  DATEPART (week, '12-09-2012 23:59:59.000' ) As WeekNo6 

SQL FiddlewithDemoを参照してください。

于 2013-01-24T12:05:37.573 に答える
1

クエリ:

SQLFIDDLEExample

SET DATEFIRST 1
SELECT DATEPART (week, '01-13-2013 23:59:59.000' ) As WeekNo1 ,  
       DATEPART (week, '01-06-2013 23:59:59.000' ) As WeekNo2 , 
       DATEPART (week, '12-30-2012 23:59:59.000' ) As WeekNo3 ,  
       DATEPART (week, '12-23-2012 23:59:59.000' ) As WeekNo4 ,  
       DATEPART (week, '12-16-2012 23:59:59.000' ) As WeekNo5 ,  
       DATEPART (week, '12-09-2012 23:59:59.000' ) As WeekNo6 

結果:

| WEEKNO1 | WEEKNO2 | WEEKNO3 | WEEKNO4 | WEEKNO5 | WEEKNO6 |
-------------------------------------------------------------
|       2 |       1 |      53 |      52 |      51 |      50 |
于 2013-01-24T12:04:49.447 に答える