Q&A about the site for administrators, end users, developers and designers for Craft CMS
SET NOCOUNT ON GO declare @t table(id int, baslangic datetime, bitis datetime, tekrar bit, gunluk bit, aralik_bas int, aralik_son int,zaman_id int) INSERT INTO @t VALUES (63, '2012-6-26 11:35:57', '2013-12-30 23:59:00', 1, 0, 3990, 4080, 1); INSERT INTO @t VALUES (16, '2012-6-5 11:44:15', '2013-12-30 23:59:00', 1, 0, 2010, 4310, 2); INSERT INTO @t VALUES (12, '2012-5-29 11:46:03', '2013-12-30 23:59:00', 1, 1, 565, 895, 3); declare @start_date datetime, @end_date datetime declare @weekMin int, @dayMin int,@hourMin int set @hourMin = 60 set @dayMin = @hourMin*24 set @weekMin = @dayMin*7 set @start_date='1990-01-01 00:00' declare @s1 int, @f1 int; -- carsamba 18:30 carsamba 20:00 set @s1= @dayMin*2+@hourMin*18+30 set @f1= @dayMin*2+@hourMin*20+ 0 declare @s2 int, @f2 int; -- sali 09:30 carsamba 23:50 set @s2= @dayMin*1+@hourMin*9+30 set @f2= @dayMin*2+@hourMin*23+50 declare @s3 int, @f3 int; -- gunluk 8:25, 14:55 set @s3 = @hourMin*8+25 set @f3 = @hourMin*14+55 --select * from @t --select * from @t where DATENAME(dw, StartDateTime) = 'Sunday' OR DATENAME(dw, StartDateTime) = 'Friday' declare @curr_time datetime, @curr_time_inmins int, @remWeek int, @remDay int set @curr_time='2012-07-04 19:30' set @curr_time_inmins = DATEDIFF(minute, @start_date,@curr_time) set @remWeek = @curr_time_inmins%@weekMin set @remDay = @curr_time_inmins%@dayMin /*select DISTINCT * from @t where (@remWeek>=start_interval AND @remWeek<=end_interval AND week_or_day='week') OR (@remDay>=start_interval AND @remDay<=end_interval AND week_or_day='day') */ SELECT CASE WHEN gunluk=0 THEN 1 WHEN gunluk=1 THEN 0 END FROM @t /* set @end_date='2010-02-11' select DATENAME(weekday, @start_date) SELECT DATEDIFF(minute, @start_date,@end_date) select @hourMin 'hourmin' select @dayMin select @weekMin DECLARE @x INT */