/ / Comparando valores de data e hora no SQL server 2008 - c #, sql-server, sql-server-2008, datetime, comparação de data e hora

Comparando valores de data e hora no servidor SQL 2008 - c #, sql-server, sql-server-2008, datetime, comparação de data e hora

Estou enfrentando um desafio ao comparar os valores de data e hora no SQL Server 2008.

Eu quero selecionar apenas as linhas da tabela"Plane_Allocation_Table" onde a coluna "To_Date" que é do tipo DATETIME é menor que a data e hora de hoje (que obtive usando GETDATE ()). E atualizo duas tabelas dependendo dos valores que a consulta acima retorna.

No entanto, as consultas que tentei não retornam nenhuma linha.

O último procedimento armazenado que desejei se parece com:

- Procedimento para atualizar Total_Allocation em Hanger_Details e Validade de reserva em 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

A comparação de "To_Date" e "@now" não está funcionando. Existe alguma solução para comparar valores de data e hora de uma tabela em um procedimento armazenado?

PS:Observe que desejo fazer a comparação com base na data e também na hora. Por exemplo, se a data / hora for "2014-12-20 10: 00: 00.000" agora e o valor da coluna for "2014-12-20 09: 59: 00.000", a linha deve ser retornada.

Edit1: Corrigi o erro de digitação aqui. (= <Para <=)

Respostas:

0 para resposta № 1

Você pode transmitir o datetime valores para date-apenas valores.

por exemplo.

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

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