如何在SQL中检查当前时间是否介于两次之间?

RJ.*_*RJ. 3 sql t-sql sql-server type-conversion

这不起作用:

IF EXISTS (( SELECT  1
            FROM    dbo.SalesOrder )
   AND (GETDATE() BETWEEN '07:00:00' AND '16:00:00'))
   BEGIN
         PRINT 'yes!'
   END
Run Code Online (Sandbox Code Playgroud)

我想要做:

如果SalesOrder表格中存在某些内容并且当前时间是早上7点到下午4点,则打印"是"

我假设我可能不得不在那里进行转换,但我不确定如何正确地进行转换.

有人想帮我一把吗?

jue*_*n d 9

怎么样

SELECT top 1 'yes'
FROM    dbo.SalesOrder
WHERE datepart(hour, GETDATE()) BETWEEN 7 and 16
Run Code Online (Sandbox Code Playgroud)

SQLFiddle演示

  • 这里还将考虑 1600 小时之后的时间,因此这将匹配从 7:00:00 到 16:59:59 (2认同)