使用 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
我有一个包含多行的 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