使用 Sql 查找位置

Using Sql to find locations

我有一个包含多行的 table,详细说明了特定地点在不同日期的营业时间。给定一个特定的日期时间,我该如何编写一个函数来找出当时营业的地点的名称和地址?

注意:各行中的时间之间没有重叠,因此任何给定时间只能有一个位置。

CREATE TABLE [dbo].[tbl_biz_locations](
    [placeid] [int] 
    [placename] [nvarchar](20) NULL,
    [place_street] [nvarchar](30) NULL,
    [place_city] [nvarchar](30) NULL,
    [sunfrom] [time](7) NULL,
    [sunto] [time](7) NULL,
    [monfrom] [time](7) NULL,
    [monto] [time](7) NULL,
    [tuefrom] [time](7) NULL,
    [tueto] [time](7) NULL,
    [wedfrom] [time](7) NULL,
    [wedto] [time](7) NULL,
    [thufrom] [time](7) NULL,
    [thuto] [time](7) NULL,
    [frifrom] [time](7) NULL,
    [frito] [time](7) NULL,
    [satfrom] [time](7) NULL,
    [satto] [time](7) NULL,


 CONSTRAINT [PK_tbl_places] PRIMARY KEY CLUSTERED 
(
    [placeid] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

假设您知道今天是星期一并且您在@date 变量中捕获了日期

if datename(dw,getdate()) = 'Monday' 
begin
 select placename from [dbo].[tbl_biz_locations] and CONVERT(TIME, @date) between monform and monto
end