是否有一種「簡單」的方法來計算兩個日期之間某一天的計數(例如,我想知道2000年1月1日至今的星期二的數量)?此外,同樣的問題更廣泛地適用於不同的單位(例如,兩個日期之間有多少2pms,Februaries有多少,8月21日有多少等等)......我最好的想法是,是這樣的:兩個日期之間的特定日期的數量
with calendar as (
select to_char(:start + level - 1, 'DAY') dayOfWeek
from dual
connect by level <= ceil(:end - :start)
)
select dayOfWeek, count(dayOfWeek)
from calendar
group by dayOfWeek;
我將不得不創建一個視圖 - 硬編碼的開始和結束日期 - 使它方便(ish)使用;或者寫一個函數來完成骯髒的工作。那會不會是困難的,但我不知道是否已經有一個Oracle功能,可以做到這一點,佔之類的飛躍天等
編輯This的相關鏈接時彈出我發佈了這個。這或多或少地回答了幾天的問題,我知道在某些月份我可以使用months_between
函數。任何其他我應該知道的相關功能?
見http://docs.oracle.com/cd/E11882_01/server.112/e26088/functions002.htm#i88891有關Oracle日期函數的列表。 – 2013-05-03 12:39:35
建立一個[日曆表](http://www.perpendulum.com/2012/06/calendar-table-script-for-oracle/),你所有的日期問題都會消失。 – GarethD 2013-05-03 12:58:29