Oracle中獲取時間的年和月並比較大小

2021-08-21 22:09:52 字數 1288 閱讀 1275

在oracle中,我覺得最讓人頭疼的就是操作date型的資料了,比如取年月日、計算幾天前、幾年前、幾個月前什麼的。但是這個又用得很多,因為不管你做什麼內容的挖掘,總是離不開時間視窗的,因為資料大多是以人為本的,而人又是善變的,所以時間是你必須非常看重的。

1、oracle中分別取年、月、日的方法

--取年份

select to_number(to_char(sysdate,'yyyy')) from dual

select extract (year

from sysdate) from dual

--取月份

select to_number(to_char(sysdate,'mm')) from dual

select extract (month

from sysdate) from dual

--取日期

select to_number(to_char(sysdate,'dd')) from dual

select extract (day

from sysdate) from dual

2、oracle中取日、月的方法

--如果字段本身就是date型

select to_char(sysdate,'yyyy-mm') from dual

--如果字段本身不是date型

select to_char(to_date(datechar,'yyyy-mm'),'yyyy-mm') from dual

--也可以用substr方法了,引數4表示從哪個字元開始擷取,10表示擷取多少個字元

select substr(to_char(sysdate,'yyyy-mm-dd'),4,6) from dual

以上這種方法雖然很簡單粗暴,但親測有效,而且可以比較大小,請看下方**

3、oracle中日、月比較大小

--如果字段本身就是date型

to_char(date,'yyyy-mm')<=to_char(sysdate,'yyyy-mm')

--如果字段本身不是date型

to_char(to_date(date,』yyyy-mm』),'yyyy-mm')<=to_char(to_date(datechar),'yyyy-mm')

可以這樣做的原因是:oracle能夠在同型別間預設轉換為數字,並進行大小的比較,你要是不放心,也可以換成數字或者時間戳試試。

Sql獲取周 月 年的首尾時間。

select dateadd ww,datediff ww,0,getdate 0 本週周一 select dateadd dd,1,dateadd ww,datediff ww,0,getdate 1,0 本週週末 select dateadd mm,datediff mm,0,getdate 0...

Java Calendar獲取時間的月和日 周

calendar cal calendar.getinstance 當前年 int year cal.get calendar.year 當前月 int month cal.get calendar.month 1 當前月的第幾天 即當前日 int day of month cal.get cale...

根據指定日期獲取周,月,年的開始和結束時間

獲取本週的第一天日期和最後一天日期 按中國周 param todaytime 2017 03 15 return arr 0 第一天日期 arr 1 最後一天日期 throws parseexception public static string getweekstartandenddate st...