我在數據庫中有以下列。 AgreedStartDate,ActualStartDate。我需要應用以下邏輯:當AcualStartDate與AgreedStartDate在同一個業務周內時,它就位於SLA內部。如果情況並非如此,那麼它就在SLA之外。如果兩列中的任何一列都是NULL,那麼它是'不完整的'。計算同一個工作周之間的SLA SQL Server
1
A
回答
2
一個簡單的CASE語句?你不需要使用變量,你可以直接引用你的列名。我只是使用變量來完成一個聲明。
DECLARE @agreedStartDate DATETIME
DECLARE @actualStartDate DATETIME
SET @agreedStartDate = GETDATE()
SET @actualStartDate = GETDATE()
SELECT
CASE
WHEN
@agreedStartDate IS NULL
OR
@actualStartDate IS NULL
THEN
'Incomplete'
WHEN
DATEPART(wk, @agreedStartDate) = DATEPART(wk, @actualStartDate)
AND
DATEPART(yyyy, @agreedStartDate) = DATEPART(yyyy, @actualStartDate)
THEN
'Inside'
ELSE
'Outside'
END
0
在SQL Server中,你可以使用一個CASE語句,如:
select case
when ActualStateDate is null or AgreedStartDate is null then 'Incomplete'
when datepart(wk,ActualStateDate) = datepart(AgreedStartDate) then 'Inside'
else 'Outside'
end as ColumnName
from YourTable
相關問題
- 1. 計算sql server中兩個日期之間的工作時間(不包括週末)
- 2. 在SQL Server中計算工作周的函數
- 3. 我可以計算SQL Server中兩個日期之間有多少個週末?
- 4. 使用SQL計算周工作週數和排除週末的時間
- 5. 計算兩個日期之間的工作日
- 6. 計算SLA在Excel與時間戳
- 7. 想要一個SQL來計算兩個日期之間的工作天數
- 8. SQL Server:每週計算記錄數(周=週四至週三)
- 9. 計算一個月的工作時間
- 10. sql server中兩個表的行數之間的計算劃分
- 11. 計算之間的2個表的SQL Server
- 12. SQL:計算不同行的一列日期之間的天數
- 13. SQL Server - 計算兩個日期之間的月差
- 14. SQL Server - 計算兩個字符之間的字符數
- 15. 如何計算SQL Server中多個點之間的距離?
- 16. 工資計算在SQL Server
- 17. 在SQL Server中計算排除週末(週一到週五)的天數
- 18. 每週計算2周SQL
- 19. WCF在不同的計算機之間工作,但不在同一臺計算機上
- 20. 兩週之間的週數和部分週數計算錯誤
- 21. SQL計算每位員工每週工作的班次
- 22. Microsoft SQL Server計算連續事件之間的總時間
- 23. 如何計算兩個日期之間的總工作時間
- 24. 計算兩個日期之間的工作時間
- 25. SQL計算工作時間爲週一至週五通過打開和關閉時間範圍
- 26. 兩個表之間計算在SQL
- 27. SQL查詢來計算兩個表之間相同的記錄
- 28. 2周計算不同時間之間不同的時區考慮採光
- 29. 計算工作日 - 週一至週五在TSQL
- 30. 如何在Tsql中計算員工周工作時間
可能需要一些調整,這取決於你的一個「商業週刊」的解釋。否則,將它放在FROM子句的頂部,你應該很好。 –
我沒有得到DATEPART函數,這是如何解決兩個列都包含在同一個工作周即週一至週五的情況。即如果約定的開始日期是11月30日,則實際開始日期最遲應爲SLA內的12月4日。 – jhowe
關於「商業周」,您可以使用SET DATEFIRST = 1等,以表明您的「開始日期」是一週。但是,通常應該嘗試保持當前服務器默認值的有效性,而不是將其設置爲單個查詢。 –