Czy istnieje prosty sposób to zrobić? Całkowicie między, mam na myśli, nie liczę datetimes 7 rano lub 7 pm, które są równe czasu rozpoczęcia lub zakończenia.Policz liczbę wystąpień 7AM lub 7PM między dwoma datetimes
Wyobrażam sobie, że można to zrobić za pomocą unixowego znacznika czasu w sekundach i odrobiny algebry, ale nie mogę tego rozgryźć.
Cieszę się, że mogę użyć czegoś w PLSQL lub zwykłym SQL.
Przykłady:
start end num_7am_7pm_between_dates
2012-06-16 05:00 2012-06-16 08:00 1
2012-06-16 16:00 2012-06-16 20:00 1
2012-06-16 05:00 2012-06-16 07:00 0
2012-06-16 07:00 2012-06-16 19:00 0
2012-06-16 08:00 2012-06-16 15:00 0
2012-06-16 05:00 2012-06-16 19:01 2
2012-06-16 05:00 2012-06-18 20:00 6
Wygląda na to, że jesteś we właściwy sposób - możesz użyć tego skrzypca http://www.sqlfiddle.com/#!4/baead/2 –
Dzięki za skrzypce. Patrząc na to teraz. –
nie jest jeszcze ok. [http://www.sqlfiddle.com/#!4/baead/6](http://www.sqlfiddle.com/#!4/baead/6). Po pierwsze, policzymy 1, gdy obie godziny będą mniejsze niż 7 (powinny wynosić zero) lub oba są większe niż 19. Po drugie, nie uwzględnia minut. Na przykład nie liczy 19:01. –