Я столкнулся с проблемой при сравнении значений даты и времени в сервере SQL 2008.Сравнение значений даты и времени в сервере SQL 2008
Я хочу, чтобы выбрать только те строки из таблицы «Plane_Allocation_Table», где столбец «to_date», который типа DATETIME меньше сегодняшней даты и времени (которые я получил с помощью GETDATE()). И обновите две таблицы в зависимости от значений, возвращаемых вышеуказанным запросом.
Однако запросы, которые я пытался, не возвращают никакие строки.
последняя сохраненная процедура I Worte выглядит следующим образом:
- Процедура для обновления Total_Allocation в Hanger_Details и Действительность Бронирование в 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: Пожалуйста, обратите внимание, что я хочу сделать сравнение на основе даты и времени. Например, если время datetime равно «2014-12-20 10: 00: 00.000», а значение столбца «2014-12-20 09: 59: 00.000», то строка должна быть возвращена.
Редактировать 1: Я исправил опечатку там. (= < до < =)
Что такое "= <" ...? –
За исключением возможной опечатки. Я думаю, вы делаете это отлично. Вы хотите еще раз проверить все остальное? Возможно, снова проверьте тип To_Date? – stripathi
Что такое тип данных To_Date – Veera