检查当前时间是否在 SQL 中的两个不同时间之间

Check if current time is between two different times in SQL

提问人:Utsab 提问时间:9/12/2023 最后编辑:marc_sUtsab 更新时间:9/12/2023 访问量:36

问:

我想在 SQL 中检查当前时间是否在晚上 10 点到 [凌晨 4 点(第二天)] 之间。

DECLARE @tt TIME
SET @tt = CONVERT(TIME, SYSDATETIMEOFFSET())

-- 2023-09-12 19:19:35.4692966 -05:00

这将为我提供当前时间,但是我如何检查它是否在今天晚上 10 点到第二天凌晨 4 点之间?

sql 时间 时间 偏移 日期 部分

评论

0赞 Jorge Campos 9/12/2023
获取今天的日期,联系晚上 10 点,转换为日期,明天的日期相同 + 凌晨 4 点,然后在此处使用操作方法: stackoverflow.com/q/18622384/460557@tt between tds and tmw
0赞 Chris Maurer 9/12/2023
小时(@tt)不在 4 到 21 之间。

答:

0赞 Ammad Amir 9/12/2023 #1

若要在 SQL Server 中检查当前时间是否介于晚上 10 点到凌晨 4 点(第二天)之间,可以使用以下 SQL 查询:

DECLARE @CurrentTime TIME = GETDATE();  -- Get the current time

IF @CurrentTime >= '22:00:00' OR @CurrentTime < '04:00:00'
BEGIN
    -- Current time is between 10 PM and 4 AM (the next day)
    PRINT 'Current time is within the specified range.'
END
ELSE
BEGIN
    -- Current time is not within the specified range
    PRINT 'Current time is outside the specified range.'
END