У меня есть особый оператор выбора, с которым мне нужна помощь.
CREATE PROCEDURE [dbo].[sp_GetLeaderEvents]
@ILCode nvarchar(20)
AS
BEGIN
SELECT EventID,EventName,EventDate,EventTime,EventSeatCount,EventILCode
FROM tblEvent
WHERE EventILCode = @ILCode AND (CAST(EventDate + EventTime AS TheEventDateTime) AS datetime) >= CAST(GETDATE() AS datetime)
END
Проблема в том, что после AND в предложении WHERE синтаксис sql неверен, но я написал его в формат, который четко указывал бы, что я пытаюсь сделать. Я разделил свои EventDate и EventTime на два разных столбца в EventTable. Я пытаюсь отфильтровать события, которые старше текущей даты и времени системы. Если я попытаюсь сравнить EventTime и EventDate по отдельности следующим образом:
WHERE EventILCode = @ILCode AND CAST(EventTime AS time) >= CAST(GETDATE() AS time) AND CAST(EventDate AS date) >= CAST(GETDATE() AS date)
Тогда, если произойдет событие в 11:00 20/08/2020, то есть за 16 дней до написания этого сообщения и второго, где предложение реализовано, то в любой день до 20-го числа событие, предшествующее текущему ВРЕМЕНИ, будет скрыто, что неверно, потому что событие произойдет только 20-го числа ...
Если есть способ сделайте это возможным, может кто-нибудь поможет мне или направит меня в правильном направлении. Любая помощь будет принята с благодарностью.