, :
, , , . 18:00, 18:15, 18:30 15- ( ), fromTime
, , , 18:00, 17:48
,
, . 15- , 17:45:00 18:14:59, 18:00 ( 3 , , )
. 15 ( a):
select *
from
(select *,
convert(timestamp(date(date_add(CreatedDate, INTERVAL '7:30' MINUTE_SECOND)),
maketime(hour(date_add(CreatedDate, INTERVAL '7:30' MINUTE_SECOND)),
round(minute(date_add(CreatedDate, INTERVAL '7:30' MINUTE_SECOND)) div 15)
* 15, 0)), datetime) as filtertime
from a
) as withfilter
order by filtertime, abs(timediff(filtertime, CreatedDate)) ;
( 7:30 15 , 30- :
select *
from
(select *,
convert(timestamp(date(date_add(CreatedDate, INTERVAL '15:00' MINUTE_SECOND)),
maketime(hour(date_add(CreatedDate, INTERVAL '15:00' MINUTE_SECOND)),
round(minute(date_add(CreatedDate, INTERVAL '15:00' MINUTE_SECOND)) div 30)
* 30, 0)), datetime) as filtertime
from a
) as withfilter
order by filtertime, abs(timediff(filtertime, CreatedDate)) ;
( 30:00 60 ).
CreatedDate 15/30/60 . , CreatedDate 2016-05-20 09:15:00 2016-05-20 09:30:00 30- , 2016-05-20 09:00:00.
, , ; , . 2016-05-20 09:18:40, 2016-05-20 09:15:00, 2016-05-20 09:30:00 2016-05-20 09:00:00 15 , 30 1 . (3: 40 , 11: 20 18: 40 ).
filtertime CreatedDate, fromTime:
var report = _reportRepository.FindBy(a => a.Fridge.FridgeIdentity == fridgeIdentity
&& a.filtertime.Year == fromTime.Year
&& a.filtertime.Month == fromTime.Month
&& a.filtertime.Day == fromTime.Day
&& a.filtertime.Hour == fromTime.Hour
&& a.filtertime.Minute == fromTime.Minute).FirstOrDefault();