我有一個sql表。我們將它稱爲'表'。我正在嘗試使用幾個WHERE子句進行選擇。我需要最後的where子句是OR。通常情況下,我只是這樣做:在SQL中用DATEDIFFS分組OR子句
SELECT *
FROM table
WHERE 1=1
AND (firstName='tom' OR lastName='jones')
然而,在這個特定的查詢,我需要的或雙方是DATEDIFFS。我試圖抓住時間戳和「NOW」之間的差值大於10小時或小於0小時的所有行。所以,我現在已經,有哪些錯誤,是這樣的:
SELECT *
FROM table
WHERE 1=1
AND (
DATEDIFF(hh, table.timestamp, GETDATE()) > 10
OR
DATEDIFF(hh, table.timestamp, GETDATE()) < 0
)
我嘗試了好幾種不同的版本上面我所並沒有什麼似乎工作。任何幫助將非常感激!我確信我只是一直盯着它太久,這是愚蠢的。
一個新的更詳細的查詢:
呀,有兩個左我的查詢這可能是怎麼在這裏發揮作用的聯接。我試圖保持我的例子簡單,但它傷害了我。這裏有一個更相關的查詢:
SELECT
tblCheckoutActivity.rid,
tblCheckoutActivity.checkedOutUser,
tblCheckoutActivity.checkedOutTime,
tblCheckoutInventory.serial,
tblCheckoutInventory.unit,
tblCheckoutInventory.tag,
tblCheckoutUsers.firstName,
tblCheckoutUsers.lastName
FROM
tblCheckoutActivity
LEFT JOIN
tblCheckoutInventory
ON
tblCheckoutActivity.scannerID = tblCheckoutInventory.SID
LEFT JOIN
tblCheckoutUsers
ON
tblCheckoutActivity.checkedOutUser = tblCheckoutUsers.badgeID
WHERE
tblCheckoutActivity.checkedInTime Is Null
AND
tblCheckoutInventory.site='San Francisco'
AND
(
DATEDIFF(hh, tblCheckoutActivity.checkedOutTime, GETDATE()) > 10
OR
DATEDIFF(hh, tblChecckoutActivity.checkedOutTime, GETDATE()) < 0
)
ORDER BY tblCheckoutUsers.lastName
它給你什麼錯誤? –
哪個實現? SQLServer的? – MPelletier
Microsoft SQLServer。 – Dex