林有这个查询的麻烦查询条件。我要不要选择已通过SYSTIME当前日期记录,但显示未来日期的记录,即使他们已经通过了当前SYSTIMESQL - 为未来的日期时间
SELECT *
FROM TABLE
WHERE DATE>= CONVERT(date, SYSDATETIME())
AND STARTTIME > CONVERT(time, SYSDATETIME())
这是查询。我知道为什么它不起作用,但我不能想办法做到我上面所说的。
林有这个查询的麻烦查询条件。我要不要选择已通过SYSTIME当前日期记录,但显示未来日期的记录,即使他们已经通过了当前SYSTIMESQL - 为未来的日期时间
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()
)
你需要一个或条件,因为日期时间都在不同的领域,你必须先解决今天的日期和时间,然后所有未来的日期,无论时间。
这取决于原始数据类型是什么了很多。让我们假定他们是date
,time
,或datetime
。
如果你想在未来的任何事情,那么这个工程:
where [date] + starttime > sysdatetime()
如果你只想未来日期然后尝试:
where [date] > cast(sysdatetime() as date)
后者是我如何理解你的问题,但我不能100%确定我的解释是正确的。
我认为你的意思是'[日期]'而不是'[日期}' – 2013-05-11 20:49:04
我已更正上述错字 – davmos 2016-04-04 10:35:51
SELECT Date,
TomorrowMidnight = Dateadd(dd, Datediff(dd, 0, Getdate()) + 1, 0),
TomorrowTimeNow = Dateadd(dd, 1, Getdate())
FROM dbo.test
WHERE date >= Getdate()
AND date < Dateadd(dd, Datediff(dd, 0, Getdate()) + 1, 0)
OR date > Dateadd(dd, 1, Getdate())
这将选择一个datetime
所有行比现在晚,但早于明天午夜,并用datetime
柱晚于(现+ 1日)的所有行。
编辑:我忽略了time
列。也许你刚刚用它来澄清你的要求,但你实际上有一个datetime
列作为我的答案推测。
什么RDBMS是什么呢?你是否也想选择过去的记录? – 2013-05-11 20:35:18
SQL Server中,对ASP网站 – user2321895 2013-05-11 20:37:16
没有,我已经花了近日期的照顾,我想只显示当前和未来的记录。但是对于当前的日期记录,仅记录当前系统时间之后的记录以及今天不存在的记录。任何时候。 – user2321895 2013-05-11 20:38:14