代码之家  ›  专栏  ›  技术社区  ›  Sam

SQL检查时间是否在一系列时区内

  •  0
  • Sam  · 技术社区  · 7 年前

    我想编写SQL来检查表a中的给定时间(例如上午5:24)是否在表B中的以下不规则时间段之一内。

    5:00 AM to 6:00 AM
    
    7:30 AM to 9:15 AM
    
    1:26 PM to 2:45 PM
    
    4:00 PM to 4:59 PM
    
    10:00 PM to 11:14 PM
    

    我的计划是编写以下SQL语句:

    CASE 
       WHEN [Given Time] BETWEEN [START TIME] and [END TIME] THEN 1 
       ELSE 0 
    END
    

    2 回复  |  直到 7 年前
        1
  •  0
  •   Wagner DosAnjos    7 年前

    CASE 
       WHEN EXISTS (SELECT 1 FROM [My Time Table] 
                     WHERE [Given Time] BETWEEN [START TIME] and [END TIME]) 
       THEN 1 
       ELSE 0 
    END
    
        2
  •  0
  •   S3S    7 年前

    CASE 声明或 JOIN

    DECLARE @YourTime time = '05:42'
    
    SELECT
       *
    FROM 
       YourTable
    WHERE
       @YourTime between [Start Time] and [End Time]
    

    ...
    WHERE 
       [Start Time] <= @YourTime 
       AND [End Time] >= @YourTime