这不起作用:
IF EXISTS (( SELECT 1
FROM dbo.SalesOrder )
AND (GETDATE() BETWEEN '07:00:00' AND '16:00:00'))
BEGIN
PRINT 'yes!'
END
我想这样做:
如果SalesOrder
表中存在某些内容并且当前时间是早上7点到下午4点,则打印“是”
我假设我可能不得不在那里进行转换,但我不确定如何正确地进行转换。
有人想帮我一把吗?
答案 0 :(得分:9)
怎么样
SELECT top 1 'yes'
FROM dbo.SalesOrder
WHERE datepart(hour, GETDATE()) BETWEEN 7 and 16
答案 1 :(得分:3)
如果您尝试比较同一天的日期时间,则需要删除GETDATE()的时间组件,然后添加X小时。还有一些其他转化here。
IF EXISTS (( SELECT 1
FROM dbo.SalesOrder )
AND (GETDATE() BETWEEN
DATEADD(hh,7,(CAST(FLOOR(CAST(GETDATE() as FLOAT)) AS DateTime))) AND DATEADD(hh,16,(CAST(FLOOR(CAST(GETDATE() as FLOAT)) AS DateTime)))))
BEGIN
PRINT 'yes!'
END