我面對的一個挑戰,在SQL服務器比較datetime值2008比較datetime值2008
我只想選擇從表「Plane_Allocation_Table」,其中列「TO_DATE」,這是那些行類型DATETIME小於今天的日期和時間(我使用GETDATE()獲得)。根據上述查詢返回的值更新兩個表。
但是,我試過的查詢沒有返回任何行。
最後一個存儲過程我又寫道看起來像:
- 程序更新Hanger_Details Total_Allocation和有效性預訂在Plane_Allocation_Details:
CREATE PROCEDURE [dbo].[Update_Total_Allocation_APMS]
AS
DECLARE @now DATETIME
SELECT @now = GETDATE()
UPDATE Hanger_Details
SET Total_Allocation = Total_Allocation - 1
WHERE Hanger_Number IN
(
SELECT Hanger_Number
FROM Plane_Allocation_Details
WHERE To_Date <= @now AND Validity = 'Valid'
)
UPDATE Plane_Allocation_Details
SET Validity = 'Not Valid'
WHERE To_Date <= @now
'TO_DATE' 和 '@now' 的比較不工作。有沒有比較存儲過程中的表中的日期時間值的解決方案?
PS:請注意,我想根據日期和時間進行比較。例如,如果時間日期時間現在爲'2014-12-20 10:00:00.000',並且列值爲'2014-12-20 09:59:00.000',則必須返回該行。
編輯1:我糾正了那裏的錯字。 (= <到< =)
什麼是「= <」...? – 2014-12-02 05:30:47
除可能的錯字外。我會認爲你做得很好。你想再次檢查一切嗎?也許再次檢查To_Date的類型? – stripathi 2014-12-02 05:39:46
To_Date的數據類型是什麼 – Veera 2014-12-02 05:42:27