мне нужна эта таблица, посмотрите пожалуйста TABLE2
Table1
VisitingCount Дата
1 ------------------- 15: 09
3 ------------------- 15: 10
7 ------------------- 15: 15
1 ------------------- 15: 39
2 ------------------- 15: 40
3 ------------------- 15: 47
Как я могу изменить эту таблицу под таблицей
Table2
VisitingCount Дата
11 ------------------- 15: 00-15: 30
6 ------------------- 15: 30-16: 00
Итак, я написал некоторые пользовательские функции sql, смотрите ниже:
create FUNCTION [dbo].[fn_GetActivityLogsArranger]
(
@time AS nvarchar(max)
)
RETURNS nvarchar(max)
AS
BEGIN
declare @Return varchar(30)
select @Return = case
when @time between '00:00' and '00:30' then '00:00-00:30'
when @time between '00:30' and '01:00' then '00:30-01:00'
when @time between '01:00' and '01:30' then '01:00-01:30'
when @time between '01:30' and '02:00' then '01:30-02:00'
when @time between '02:00' and '02:30' then '02:00-02:30'
when @time between '02:30' and '03:00' then '02:30-03:00'
when @time between '03:00' and '03:30' then '03:00-03:30'
when @time between '03:30' and '04:00' then '03:30-04:00'
when @time between '04:00' and '04:30' then '04:00-04:30'
when @time between '04:30' and '05:00' then '04:30-05:00'
when @time between '05:00' and '05:30' then '05:00-05:30'
when @time between '05:30' and '06:00' then '05:30-06:00'
when @time between '06:00' and '06:30' then '06:00-06:30'
when @time between '06:30' and '07:00' then '06:30-07:00'
when @time between '07:00' and '07:30' then '07:00-07:30'
when @time between '07:30' and '08:00' then '07:30-08:00'
when @time between '08:00' and '08:30' then '08:00-08:30'
when @time between '08:30' and '09:00' then '08:30-09:00'
when @time between '09:00' and '09:30' then '09:00-09:30'
when @time between '09:30' and '10:00' then '09:30-10:00'
when @time between '10:00' and '10:30' then '10:00-10:30'
when @time between '10:30' and '11:00' then '10:30-11:00'
when @time between '11:00' and '11:30' then '11:00-11:30'
when @time between '11:30' and '12:00' then '11:30-12:00'
when @time between '12:00' and '12:30' then '12:00-12:30'
when @time between '12:30' and '13:00' then '12:30-13:00'
when @time between '13:00' and '13:30' then '13:00-13:30'
when @time between '13:30' and '14:00' then '13:30-14:00'
when @time between '14:00' and '14:30' then '14:00-14:30'
when @time between '14:30' and '15:00' then '14:30-15:00'
when @time between '15:00' and '15:30' then '15:00-15:30'
when @time between '15:30' and '16:00' then '15:30-16:00'
when @time between '16:00' and '16:30' then '16:00-16:30'
when @time between '16:00' and '16:30' then '16:00-16:30'
when @time between '16:30' and '17:00' then '16:30-17:00'
when @time between '17:00' and '17:30' then '17:00-17:30'
when @time between '17:30' and '18:00' then '17:30-18:00'
when @time between '18:00' and '18:30' then '18:00-18:30'
when @time between '18:30' and '19:00' then '18:30-19:00'
when @time between '19:00' and '19:30' then '19:00-19:30'
when @time between '19:30' and '20:00' then '19:30-20:00'
when @time between '20:00' and '20:30' then '20:00-20:30'
when @time between '20:30' and '21:00' then '20:30-21:00'
when @time between '21:00' and '21:30' then '21:00-21:30'
when @time between '21:30' and '22:00' then '21:30-22:00'
when @time between '22:00' and '22:30' then '22:00-22:30'
when @time between '22:30' and '23:00' then '22:30-23:00'
when @time between '23:00' and '23:30' then '23:00-23:30'
when @time between '23:30' and '24:00' then '23:30-:24:00'
else 'Unknown'
end
Return @Return
end
Итак, я назвал этот UDF в моем sql-запросе. Итак, результат верный.
select Count(Page) as VisitingCount,[Time]
from
( SELECT Page,Date,[user],
dbo.fn_GetActivityLogsArranger(CONVERT(VARCHAR(5),Date, 108)) as [Time]
FROM scr_SecuristLog
) scr_SecuristLog
where
Date between '2009-05-06' and '2009-05-07'
and
[user] in
( select USERNAME
from scr_CustomerAuthorities
where customerID=Convert(varchar,4)
and ID=Convert(varchar,43)
)
group by [Time] order by [Time] asc
dbo.fn_GetActivityLogsArranger (CONVERT (VARCHAR (5), Date, 108)) ... метод функции не является эффективным методом.
Так как; написание слишком большого количества сравнений «когда-то» не является достаточным способом получения данных.
Есть ли такой метод, как: "Math.Round ()" в SQL не C #.
Например:
Выполнить (11:28) Результат: 11:00, но Выполнить (11:31) Результат: 12:00