2015-07-09 3 views
-1

У меня есть таблица с несколькими строками, которая детализирует время открытия определенных мест в разные дни. Учитывая конкретное время и дату, как я могу написать функцию, чтобы узнать имя и адрес места, которое открыто в это время?Использование Sql для поиска местоположений

Примечание: между строками строк нет совпадений, поэтому может быть только одно место для любого заданного времени.

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] 
+1

ли это SQL Server? –

+0

Да. Также я забыл упомянуть, что между строками строк нет совпадений, поэтому может быть только одно местоположение за любое заданное время. – user1480192

ответ

0

Предполагая, что вы знаете, что день является понедельником и у вас есть дата захваченный в @date переменной

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

. Я получаю сообщение об ошибке, если '@ date' не относится к типу' time' –

+0

См. Мое редактирование –

+0

вопрос предполагает, что мы не знаем день недели, даем время, нам нужно выяснить правильную строку И правильные поля, чтобы проверить – user1480192

Смежные вопросы