我在处理这个查询时遇到了问题。我不想选择已通过当前日期的 SYSTIME 的记录,而是显示未来日期的记录,即使它们已通过当前的 SYSTIME
SELECT *
FROM TABLE
WHERE DATE>= CONVERT(date, SYSDATETIME())
AND STARTTIME > CONVERT(time, SYSDATETIME())
这是查询。我知道为什么它不起作用,但我想不出一种方法来做我上面所说的。
我在处理这个查询时遇到了问题。我不想选择已通过当前日期的 SYSTIME 的记录,而是显示未来日期的记录,即使它们已通过当前的 SYSTIME
SELECT *
FROM TABLE
WHERE DATE>= CONVERT(date, SYSDATETIME())
AND STARTTIME > CONVERT(time, SYSDATETIME())
这是查询。我知道为什么它不起作用,但我想不出一种方法来做我上面所说的。
SELECT *
FROM TABLE
WHERE
(
(DATE = CONVERT(date, SYSDATETIME()
AND STARTTIME > CONVERT(time, SYSDATETIME()
)
OR Date > sysdatetime()
)
您需要一个 or 条件,因为日期时间在不同的字段中,您必须首先解析今天的日期和时间,然后再解析所有未来的日期,无论时间如何。
这在很大程度上取决于原始数据类型是什么。假设它们是date
、time
或datetime
。
如果您将来想要任何东西,那么这很有效:
where [date] + starttime > sysdatetime()
如果您只想要未来的日期,请尝试:
where [date] > cast(sysdatetime() as date)
后者是我解释你的问题的方式,但我不能 100% 确定我的解释是正确的。