我在計算如何編寫一個看起來非常簡單的查詢時遇到了一些問題。兩個日期之間的TSQL搜索查詢
問題在於我的WHERE
子句。我的桌子上有兩個字段。任務開始時的時間戳startTime
和任務完成時的時間戳endTime
/這兩個字段均爲Datetime
。
在我的用戶界面中,我允許該人選擇Start Date
和End Date
及其過濾選項。
日期邏輯應該如下:
一切其中StartTime
是>= @startDate
但< @endDate
和EndTime
<[email protected]
是但> @startDate。
我在數據庫中使用單個日期之前已經完成了日期範圍,但不是多個,所以我很困惑。
有什麼想法?
-- Fetch our data
SELECT [recordID],
[ItemID],
[QID],
[NTID],
[EmpID],
[FirstName],
[LastName],
[SupQID],
[SupEmpID],
[SupFirstName],
[SupLastName],
[Location],
[Department],
[Skillset],
[BudgetMarket],
CONVERT (VARCHAR (20), [startTime], 100) AS startTime,
CONVERT (VARCHAR (20), [endTime], 100) AS endTime,
COALESCE (DATEDIFF(SECOND, startTime, endTime), 0) AS totalTimeSeconds
FROM itemTracker_records
WHERE (@employee IS NULL OR (QID = @employee))
AND (@supervisor IS NULL OR (supQID = @supervisor))
AND CAST(endTime as Date) >= @startDate AND CAST(endTime as Date) < @endDate
FOR XML PATH ('results'), TYPE, ELEMENTS, ROOT ('root');
對不起,我們忍不住。下次吧。 – HABO