大家好我在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在今天之后的日期,任何想法?
答案 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())))