/ / Porovnanie dátových hodnôt v SQL serveri 2008 - c #, sql-server, sql-server-2008, datetime, datetime-compare

Porovnanie hodnôt dátumu v SQL Server 2008 - c #, sql-server, sql-server-2008, datetime, datetime-porovnanie

I "m čelia výzve v porovnaní dátových hodnôt v SQL Server 2008.

Chcem vybrať len tie riadky z tabuľky"Plane_Allocation_Table", kde stĺpec "To_Date", ktorý je typu DATETIME, je menší ako dnešný dátum a čas (ktorý som získal pomocou služby GETDATE ()) a aktualizuje dve tabuľky v závislosti od hodnôt uvedených vyššie v dotaze.

Dotazy, ktoré som sa snažil, však nevracajú žiadne riadky.

Posledná uložená procedúra vyzerá takto:

- Postup aktualizácie Total_Allocation v Hanger_Details a Platnosť rezervácie v 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

Porovnanie "To_Date" a "@now" isn "t working. Je nejaké riešenie na porovnanie dátových hodnôt z tabuľky v uloženej procedúre?

PS: Upozorňujeme, že chcem vykonať porovnanie na základe dátumu a času. Napríklad, ak čas teraz je "2014-12-20 10: 00: 00.000" a hodnota stĺpca je "2014-12-20 09: 59: 00.000", potom riadok musí byť vrátený.

Edit1: Opravil som preklep tam (= <na <=)

odpovede:

0 pre odpoveď č. 1

Môžete obsadiť datetime hodnoty do date- hodnoty.

napr.

DECLARE @today date
SELECT @today = CONVERT(date, GETDATE())

UPDATE Plane_Allocation_Details
SET Validity = "Not Valid"
WHERE CONVERT(date, To_Date) <= @today