日期型函式

2021-10-20 19:39:29 字數 3785 閱讀 7020

to_date(str,『yyyy/mm/dd』):將字串形式的日期轉化成日期型的日期

to_char(date1,『yyyy/mm/dd』):將日期形式的日期轉化成字元型的日期

示例:

select to_date(sysdate,『yyyy/mm/dd』) from dual;–報錯 select

to_char(『2021/01/15』,『yyyy/mm/dd』) from dual;–報錯 無效數字

注意:

1).to_date()轉換的資料不能為日期型資料

2).to_char()轉換的資料不能為字元型的資料

a.資料庫當前的系統時間 含有 年月日 時分秒

b.函式可以進行運算 ,小數按照24小時劃分計入到運算結果中

示例:

select sysdate from dual;

select sysdate+

1from dual;

--增加天數

select sysdate+

13from dual;

--整數 增加天數

select sysdate+

1.5from dual;

--小數按照24小時劃分

select sysdate+1/

24from dual;

select sysdate+1/

24/60from dual;

求d1和d2之間相差幾個月(d1>d2)否則值為負,返回的為一數值

注意:a.不足整月,除以31以小數顯示

b.月末日期用函式處理,返回整數

示例:1).查詢至今2023年已過幾個月

select months_between(to_date(

'2021/01/01'

,'yyyy/mm/dd'

),sysdate)

from dual;

--結果為負

select months_between(sysdate,to_date(

'2021/01/01'

,'yyyy/mm/dd'))

from dual;

--結果為正

select months_between(to_date(

'2021/01/19'

,'yyyy/mm/dd'

),to_date(

'2021/01/01'

,'yyyy/mm/dd'))

from dual;

2).查詢一月31號至二月28號相差幾個月

select months_between(to_date(

'2021/02/28'

,'yyyy/mm/dd'

),to_date(

'2021/01/31'

,'yyyy/mm/dd'))

from dual;

獲取指定日期對應的當月最後一天,即月末日期

示例:1).獲取當月最後一天的日期

select last_day(sysdate)

from dual;

2).判斷指定日期的閏年平年

–二月的最後一天是28、29

–整百年/400 非整百年/4 1900

在date1日期的基礎上加n個月。n可為正可為負

注意:a.n為正增加月數,n為負減少月數

b.當n為小數時,自動取整數字數值

c.若處理的日期為月末日期,返回處理後的月末日期,若處理後的日期中無當下日期,則返回月末日期

示例:1).n為正增加月數

select add_months(sysdate,1)

from dual;

2).n為負減少月數

select add_months(sysdate,-1

)from dual;

3).n為小數 向下取整

select add_months(sysdate,

1.5)

from dual;

--2021/02/19

select add_months(sysdate,

1.9)

from dual;

--2021/02/19

select add_months(sysdate,

1.4)

from dual;

--2021/02/19

n為負小數 向上取整

select add_months(sysdate,

-1.5

)from dual;

select add_months(sysdate,

-1.9

)from dual;

–小數直接trunc(n)

4). add_months()函式針對月份的加減

select add_months(sysdate,12)

from dual;

select add_months(to_date(

'2020/03/30'

,'yyyy/mm/dd'),

2)from dual;

--2020/05/30

select add_months(to_date(

'2020/03/30'

,'yyyy/mm/dd'),

-1)from dual;

--2020/02/29

select add_months(to_date(

'2020/02/29'

,'yyyy/mm/dd'),

2)from dual;

--2020/04/30

next_day(d,w):給定日期d,在本週內就獲取本週的第w天的日期,

不在本週就獲取在下一周的第w天的日期

next_day(d,w):給定日期d,在本週內就獲取本週星期w的日期,

不在本週就獲取在下一周星期w的日期

select next_day(sysdate,

'星期二'

)from dual;

select next_day(sysdate,3)

from dual;

2).獲取下乙個週三的日期

select next_day(sysdate,

'星期三'

)from dual;

select next_day(sysdate,4)

from dual;

1).sysdate

2).month_between(d1,d2)

d23).last_day(d1)

–返回當前月份的最後一天的日期

4).add_months(d1,n)

兩個引數:乙個日期型,乙個數字

5).next_day(d1,w)

–返回下乙個w的日期

w為數字:在本週內 返回本週第w天的日期,否則返回下一周第w天的日期(以周天為第一天)

w為星期w:在本週內 返回本週w的日期,否則返回下一周w的日期(以周天為第一天)

ORACLE 日期型函式

1.add months 增加或減去月份 sql select to char add months to date 199912 yyyymm 2 yyyymm from dual to char 200002 sql select to char add months to date 19991...

Oracle數字型,字元型,日期型函式

一.數字型函式 在oracle資料庫中,dual表示真實存在的,它本身包含了乙個dummy欄位,如果使用者刪除了該錶,則oracle將無法啟動。下面記錄的是部分函式。mod n1,n2 求餘,當n2為0時,返回的是n1。sign n 函式,返回引數n的符號。即正數返回1,負數返回 1,0就返回0。r...

S型函式 Sigmoid 函式

sigmoid函式,即f x 1 1 e x 神經元的非線性作用函式。x是冪數 人工神經網路的學習演算法 bp演算法 神經網路的學習是基於一組樣本進行的,它包括輸入和輸出 這裡用期望輸出表示 輸入和輸出有多少個分量就有多少個輸入和輸出神經元與之對應。最初神經網路的權值 weight 和閾值 thre...