2016-06-01 21 views
-1

私は継承したSQLコーディングで上記の関数を持っており、実際に計算しているものを誰でも手助けすることができますか?SQLの日付 - 関数

+0

SQL Server 2008 –

+0

MS ExcelやAccessの機能によく似ています。 – gofr1

+0

私はこれがDAXだと思っていましたが、DAXにはDATEADD機能がないのでそうではありません。しかし、T-SQLには「WEEKDAY」機能がないため、これはおそらく単なるVBAです。このコードを見つけた場所のコンテキストを追加します。 –

答えて

1

このSQLを、部分的に分解された文で検討してください。
SQL Server 12でテストされ、Date()関数の代わりにGETDATE()が使用されています。

select 
GETDATE() as today, 
@@DATEFIRST as first_day_of_the_week_number, 
DATEPART(WEEKDAY,GETDATE()) as current_day_number_of_the_week, 
GETDATE()-DATEPART(WEEKDAY,GETDATE()) as previous_saturday, 
GETDATE()-DATEPART(WEEKDAY,GETDATE())+1 as previous_sunday, 
DATEADD("ww",-9,GETDATE()-DATEPART(WEEKDAY,GETDATE())+1) as previous_sunday_9_weeks_back; 

したがって、9週間の日曜日が戻ってきます。それは@@DATEFIRST@@DATEFIRSTが1の場合、それが戻って9週の月曜日を返す7.
に等しいことを前提としていること

注意。

+2

これは実際は['@@ DATEFIRST'](https://msdn.microsoft.com/library/ms187766)の値に完全に依存します。 (しかし、 'WeekDay'関数も同様に第2引数' 0'であいまいです。) –

+0

@Jeroenそのt-sql quirckを認識していませんでした。洞察に感謝します。 – LukStorms