1樓:
假設表t,欄位s_time是你需要的列:
(1) 若s_time為date型別,計算相差天數的sql語句:select trunc(sysdate)-trunc(s_time) from t where 你需要的條件;
(2)若s_time為varchar2型別,計算相差天數的sql語句:select trunc(sysdate)-to_date(s_time,'yyyy-mm-dd') from t where 你需要的條件;
2樓:請叫我召哥
select * from table where floor(sysdate - to_date('20121205','yyyymmdd'))<=0
你可以將to_date('20121205','yyyymmdd')換成你所用表中的日期列
oracle資料庫中怎麼查詢當前年每月的天數,按自然月統計,謝謝!
3樓:匿名使用者
樓上的只統計了一個月的吧
with t as
(select rownum
from dual
connect by rownum <= 12)select to_char (last_day (to_date ( to_char (sysdate, 'yyyy')
|| lpad (to_char (rownum), 2, 0),'yyyymm')),
'yyyy-mm'
)|| '月',
to_char (last_day (to_date ( to_char (sysdate, 'yyyy')
|| lpad (to_char (rownum), 2, 0),'yyyymm')),
'dd'
)|| '天'
from t
直接全選複製貼上執行
4樓:匿名使用者
oracle 實現按周,月,季度,年查詢統計資料
//按自然周統計
select to_char(date,'iw'),sum()
from
where
group by to_char(date,'iw')
//按自然月統計
select to_char(date,'mm'),sum()
from
where
group by to_char(date,'mm')
//按季統計
select to_char(date,'q'),sum()
from
where
group by to_char(date,'q')
//按年統計
select to_char(date,'yyyy'),sum()
from
where
group by to_char(date,'yyyy')
統計的時候注意:以上我寫的統計知識統計當年的,要是跨年在存在邏輯上問題,需要根據需要格式化「統計時間」。可以根據需要參考下面的to_char函式
附:to_char函式說明
to_char(x[[,c2],c3])
【功能】將*期或資料轉換為char資料型別
【引數】
x是一個date或number資料型別。
c2為格式引數
c3為nls設定引數
如果x為*期nlsparm=nls_date_language 控制返回的月份和*份所使用的語言。
如果x為數字nlsparm=nls_numeric_characters 用來指定小數位和千分位的分隔符,以及貨幣符號。
nls_numeric_characters ="dg", nls_currency="string"
5樓:常爾
select
to_char(add_months(trunc(sysdate,'yyyy'),level-1),'yyyymm') year_month,
last_day(add_months(trunc(sysdate,'yyyy'),level-1))-add_months(trunc(sysdate,'yyyy'),level-1)+1 days
from
dual
connect by level<=12
oracle資料庫 sql高手請進來:取出某段時間段內,時間中天數連續的資料
6樓:校巨集盛
**要這麼複雜....鑑於你按每10分鐘來連續排列有點奇怪..我寫了一個按照日期來連續的sql..
select b.name, min(b.visit_time), max(b.visit_time)
from (
select a.*, (a.visit_time - rownum) cc
from (
select * from vister order by name, visit_time
) a) b
group by b.name, b.cc;
7樓:匿名使用者
直接用查詢就可以得到你要的結果:
select id,name,visit_time
from
(select id,name,visit_time
,cnt
,max(cnt) over () mx
from
(select id,name,visit_time
,count(mindate) over (partition by mindate) cnt
from
(select id,name,visit_time
,mindate
from
(select id,name,visit_time
,row_number() over (order by visit_time) rn
from vister t
where t.name = '張三'
) tmodel
dimension by (t.rn)
measures(id,name,visit_time,trunc(visit_time) visit_date,trunc(t.visit_time) as mindate)
rules upsert all
(mindate[any] =
case
when visit_date[currentv()] - visit_date[currentv()-1] <= 1 then
mindate[currentv()-1]
else
visit_date[currentv()]
end)
order by visit_time))
)where cnt = mx
8樓:曾經黃過
我給你個思路吧!相必你基本的orcacl操作都會,因為我沒有裝這相資料,所以也沒有辦法給你寫**!
第一步:先有count(日期),name,日期(格式為年月日) group by 日期,name (對count進行高到低排列)
第二步:取出最高日期,
第三步:顯示最高日期下的詳細資訊;
9樓:匿名使用者
參照一下這個
10樓:匿名使用者
建議使用儲存過程吧。
oracle的查詢語句中to date()是什麼意思,那裡面的引數分別代表什麼含義
oracle的查詢語句中to date 是一個日期轉換函式。1.日期格式引數含義說明 d 一週中的星期幾 day 天的名字,使用空格填充到9個字元 dd 月中的第幾天 ddd 年中的第幾天 dy 天的簡寫名 iw iso標準的年中的第幾周 iyyy iso標準的四位年份 yyyy 四位年份 yyy,...
oracle語句查詢or和and
firstname thomas or firstname william and lastname carter 會得到 lastname 必須為 carter firstname 為 thomas 或者 william的人 thomas carter william carter firstna...
oracle資料庫查詢語句,oracle 資料庫查詢語句
select sum bal cifno from select from a cross join b group by cifno order by 1 如果select from a cross join b不顯示或者顯示錯誤,那麼可以換為select from a union all sel...