ASP.Net SQL日期在今天之后

时间:2011-04-03 16:34:44

标签: asp.net sql

大家好我在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 个答案:

答案 0 :(得分:4)

假设SQL Server,GETDATE()函数返回日期和时间语句在以下位置运行:

WHERE Schd_Date > GETDATE()

使用以下方法查找大于午夜当前日期的日期:

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

但是,CURRENT_TIMESTAMP是获取数据库中当前日期和时间的ANSI方法。除此之外,日期功能在数据库之间并不一致,因此您必须告诉我们您正在处理的内容以获得更好的答案。

答案 1 :(得分:1)

如果这是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())

答案 2 :(得分:0)

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)

这应该有效

答案 3 :(得分:0)

我猜这个表达式可以用作表示 yyyy-mm-dd 格式的当前日期的日期(没有小时,分钟和秒)。

(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())))