如何在SQL中判断当前时间是否处于当日22点至次日4点之间?
SQL判断当前时间是否处于当日22:00至次日04:00区间
由于目标区间跨午夜(从当日22点到次日4点),不能直接使用BETWEEN(BETWEEN要求左边界≤右边界,而'22:00:00'大于'04:00:00',会导致判断失效),正确的逻辑是判断当前时间满足以下两个条件之一:
- 当前时间大于等于当日22:00
- 当前时间小于等于次日04:00
结合你已有的时间获取代码,完整的判断实现如下:
方式一:用IF分支输出结果
DECLARE @tt TIME SET @tt = CONVERT(TIME, SYSDATETIMEOFFSET()) IF @tt >= '22:00:00' OR @tt <= '04:00:00' BEGIN PRINT '当前时间处于22:00至次日04:00区间' END ELSE BEGIN PRINT '当前时间不在目标区间' END
方式二:返回布尔值结果(1=在区间内,0=不在)
DECLARE @tt TIME SET @tt = CONVERT(TIME, SYSDATETIMEOFFSET()) SELECT CASE WHEN @tt >= '22:00:00' OR @tt <= '04:00:00' THEN 1 ELSE 0 END AS IsInTargetInterval
内容的提问来源于stack exchange,提问作者Utsab
相关产品推荐
相关产品推荐

