ASP.Net SQL, где дата после сегодня - PullRequest
0 голосов
/ 03 апреля 2011

Привет всем, у меня есть следующий запрос, выполненный с использованием Query Builder в Visual Studio.

SELECT Schd_ID, Schd_Date, Schd_Avaliable, Schd_Nights, Schd_Price, Accom_ID
FROM   Schedule
WHERE  (Schd_Avaliable = 'Yes') AND (Accom_ID = Accom_ID)

Я хочу добавить еще один оператор WHERE, который добавляет, где Schd_Date находится после сегодняшней даты, есть идеи?

Ответы [ 4 ]

4 голосов
/ 03 апреля 2011

Предполагая, что SQL Server, функция GETDATE () возвращает дату и время , в котором выполнялся оператор:

WHERE Schd_Date > GETDATE()

Используйте следующее для поиска дат, превышающих текущую дату вполночь:

WHERE Schd_Date > DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()))

Однако CURRENT_TIMESTAMP - это средство ANSI для получения текущей даты и времени в базе данных.Кроме того, функциональность даты не согласована между базами данных, поэтому вам придется рассказать нам о том, с чем вы имеете дело, чтобы получить лучшие ответы.

1 голос
/ 03 апреля 2011

Если это SQL Server, вы можете использовать функцию GETDATE() для возврата текущей даты и сравнения с ней:

SELECT 
    Schd_ID, Schd_Date, Schd_Avaliable, Schd_Nights, Schd_Price, Accom_ID 
FROM 
    Schedule 
WHERE 
    (Schd_Avaliable = 'Yes') 
AND 
    (Accom_ID = Accom_ID)
AND 
    (Schd_Date > GETDATE())
0 голосов
/ 03 апреля 2011

Полагаю, это выражение можно использовать как дату, представляющую текущую дату в формате гггг-мм-дд (без часов, минут и секунд).

(Datepart('yyyy',getdate())+ '-' +Datepart('m',getdate())+ '-' + Datepart('d',getdate()))

следовательно

SELECT Schd_ID, Schd_Date, Schd_Avaliable, Schd_Nights, Schd_Price, Accom_ID 
FROM   Schedule    
WHERE  (Schd_Avaliable = 'Yes') AND (Accom_ID = Accom_ID) AND 
       (Schd_Date >= (Datepart('yyyy',getdate())+ '-' + 
                     Datepart('m',getdate())+ '-' + 
                     Datepart('d',getdate())))
0 голосов
/ 03 апреля 2011
SELECT Schd_ID, Schd_Date, Schd_Avaliable, Schd_Nights, Schd_Price, Accom_ID
FROM   Schedule
WHERE  (Schd_Avaliable = 'Yes') AND (Accom_ID = Accom_ID) AND (GETDATE() < Schd_Date)

Это должно работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...