SQL Serverクエリで週末を除外するにはどうすればよいですか?
-
05-07-2019 - |
質問
土曜日または日曜日の DateTime
列の値を除外するにはどうすればよいですか
たとえば、次のデータが与えられた場合:
date_created
'2009-11-26 09:00:00' -- Thursday
'2009-11-27 09:00:00' -- Friday
'2009-11-28 09:00:00' -- Saturday
'2009-11-29 09:00:00' -- Sunday
'2009-11-30 09:00:00' -- Monday
これは私が探している結果です:
date_created
'2009-11-26 09:00:00' -- Thursday
'2009-11-27 09:00:00' -- Friday
'2009-11-30 09:00:00' -- Monday
ありがとう!
解決
曜日の計算を扱う場合、現在の DATEFIRST
設定。このクエリは、 @@ DATEFIRST
週の最初の曜日の可能な設定を説明します。
SELECT *
FROM your_table
WHERE ((DATEPART(dw, date_created) + @@DATEFIRST) % 7) NOT IN (0, 1)
他のヒント
SELECT date_created
FROM your_table
WHERE DATENAME(dw, date_created) NOT IN ('Saturday', 'Sunday')
SQL Serverを使用している場合、dwでDATEPARTを使用します:
SELECT date_created
FROM your_table
WHERE DATEPART(dw, date_created) NOT IN (1, 7);
編集: DATEPART(dw)によって返される実際の数値は、SET DATEFIRST:
を使用して設定された値によって決定されることを指摘する必要があります。
http://msdn.microsoft.com/en-us/library/ms181598.aspx
DATENAME()
関数を試してください:
select [date_created]
from table
where DATENAME(WEEKDAY, [date_created]) <> 'Saturday'
and DATENAME(WEEKDAY, [date_created]) <> 'Sunday'
答えは、サーバーの週の開始設定によって異なるため、どちらかです
SELECT [date_created] FROM table WHERE DATEPART(w,[date_created]) NOT IN (7,1)
サーバーの日曜日が週の最初の日である場合
または
SELECT [date_created] FROM table WHERE DATEPART(w,[date_created]) NOT IN (6,7)
月曜日がサーバーの週の最初の日である場合
質問がある場合はコメントしてください:-)
Calculateテーブル列の就業日をデフォルト値として残す-更新済み
SQLを使用している場合は、次のクエリが役立ちます。 http://gallery.technet.microsoft.com/Calculate ...
このコードを試してください
select (DATEDIFF(DD,'2014-08-01','2014-08-14')+1)- (DATEDIFF(WK,'2014-08-01','2014-08-14')* 2)
所属していません StackOverflow