oracle查詢語句中判斷列表中的值和當前日期相差的天數是否

時間 2021-12-20 22:06:27

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...