1.系统时间
sysdate,默认dd-mon-rr 日-月-年
2.日期操作
add_monthw(date,i)
i可以任何整数,如果i是小数,会自动截取整数
next_day(date,char)
如果char的值是‘星期一’,则返回date是指定日期的下一个周一是哪天
last_day(date) 返回日期所在月的最后一天
months_between(date1,date2)---2个日期之间间隔的月份
SQL> select sysdate from dual;
SYSDATE
--------------
30-1月 -22
SQL> select add_months(sysdate,3),add_months(sysdate,-3) from dual;
ADD_MONTHS(SYS ADD_MONTHS(SYS
-------------- --------------
30-4月 -22 30-10月-21
SQL> select next_day(sysdate,'星期一') from dual;
NEXT_DAY(SYSDA
--------------
31-1月 -22
SQL> select last_day(sysdate) from dual;
LAST_DAY(SYSDA
--------------
31-1月 -22
SQL> select month_between('20-5月-15','10-1月-15') from dual;
select month_between('20-5月-15','10-1月-15') from dual
*
第 1 行出现错误:
ORA-00904: "MONTH_BETWEEN": 标识符无效
SQL> select months_between('20-5月-15','10-1月-15') from dual;
MONTHS_BETWEEN('20-5月-15','10-1月-15')
---------------------------------------
4.32258065
SQL> select extract(year from sysdate) from dual;
EXTRACT(YEARFROMSYSDATE)
------------------------
2022
SQL> select extract(month from sysdate) from dual;
EXTRACT(MONTHFROMSYSDATE)
-------------------------
1
SQL> select extract(day from sysdate) from dual;
EXTRACT(DAYFROMSYSDATE)
-----------------------
30
SQL> select extract(hour from timestamp '2015-10-1 12:12:12') from dual;
EXTRACT(HOURFROMTIMESTAMP'2015-10-112:12:12')
---------------------------------------------
12
4.日期函数
系统时间:sysdate
日期操作:
add_months(date,i):
i为任何一个整数,若为小数,则自动取整,若为负数,则减去相应月数;
select add_months(sysdate,3) from dual;
next_day(date,char);
如果char值是'星期一',则返回date指定日期的下周一是哪天;
select next_day(sysdate,'星期一') from dual;
last_day(date):
返回某月最后一天
extrcat(date from datetime):(ORACLE貌似不支持)
返回datetime相应的日期部分,若返回日期,则写成year from datetime;
select extrcat(day from sysdate) from dual
-- 系统时间
SYSDATE 默认格式: DD-MON-RR 日月年
SELECT SYSDATE FROM DUAL; --示例
-- 日期操作
1.用于添加指定的月份,返回在指定日期添加的月份
ADD_MONTHS(date,i)
--i如果是小数,则截取整数部分,如果负数,相对于为原日期监区月份
select add_months(sysdate,3),add_months(sysdate,-3) from dual; --示例
2. NEXT_DAY(date,char) 返回下一个星期几是哪天
--date 计算的日期 ,
--char 星期几 如果char的值是星期一,则返回date指定日期的下周一是哪天
select next_day(sysdate,'星期一') from dual; --示例
3.LAST_DAY(date) 用于返回date所在月的最后一天
select last_day(sysdate) from dual;
4. MONTHS_BETWEEN(date1,date2) 表示两个日期之间相隔的月份
select months_between(sysdate,'01-1月-21') from dual;
5.EXTRACT(date from datetime) 返回 年或月或日,时/分/秒等
--date 要返回 datetime 的年 year或月 month 或日day
-- datetime 计算的日期时间
select extract(year from sysdate) from dual; --示例 返回日期年份
select extract(month from sysdate) from dual; --示例 返回月份
select extract(day from sysdate) from dual; --示例 返回日
select extract(hour from timestamp '2015-10-1 17:25:13') from dual; --返回 小时
日期操作函数
日期函数
1、系统时间
SYSDATE:默认格式:DD-MON-RR/日-月-年
2、日期操作
i可以是任何整数,如果i是小数,则截取整数部分,如果i是负数,则相当于为原日期减去月份
NEXT_DAY(date,char)
返回当月的最后一天是几号
LAST_DAY(date)
EXTRACT(date from datetime)
extract (year/day... from date输入值) 返回输入值的截取年/天。。。。
系统时间
sysdate 默认格式 dd-MM-yy
日期操作
2.1 ADD_MONTHS(date,i)增加月份
2.2 NEXT_DAY(date,char)返回的是下周的哪一天,用char指定。根据中英文环境指定不同字符串。
2.3 LAST_DAY(date)返回所在月的最后一天
2.4 MONTHS_BETWEEN(date1, date2) 返回两个日期的月份差,天数不同时,返回的是一个小数。如果要得到两个日期的天数差,直接对日期进行相减计算。
2.5 EXTRACT(date FROM datetime) 截取日期的部分,date的取值有year month day hour minutes seconds
select extract(hour from timestamp '2015-10-1 17:25:13') from dual
获取系统时间函数:sysdate,默认格式DD-MON-RR(日-月-年),下例:
SQL> select sysdate from dual;
SYSDATE
--------------
26-3月 -19
日期操作:add_months(date.i),函数作用是返回在指定日期上添加的月份【i可以是任何数,若是小数则截取整数,若是负数,则相当于在原来的日期上剪去相应月份】
SQL> select add_months(sysdate,3),add_months(sysdate,-3),add_months(sysdate,0.5) from dual;
ADD_MONTHS(SYS ADD_MONTHS(SYS ADD_MONTHS(SYS
-------------- -------------- --------------
26-6月 -19 26-12月-18 26-3月 -19
SQL> select add_months(sysdate,3),add_months(sysdate,-3),add_months(sysdate,1.5) from dual;
ADD_MONTHS(SYS ADD_MONTHS(SYS ADD_MONTHS(SYS
-------------- -------------- --------------
26-6月 -19 26-12月-18 26-4月 -19
函数next_day(date,char):如果char的值是“星期一”,则返回date指定日期的下一个星期一是哪天。
函数last_day(date):返回月最后一天是几号。
函数month_between(date1,date2):返回两个日期之间相隔的月份。下例:
SQL> select months_between('26-3月-19','10-1月-19')from dual;
MONTHS_BETWEEN('26-3月-19','10-1月-19')
---------------------------------------
2.51612903
函数extract(date from datetime):获取当前时间的年或月或日,下例:
SQL> select extract(year from sysdate)from dual;
EXTRACT(YEARFROMSYSDATE)
------------------------
2019
sysdate可以表示时间类型,再看一个例子:
SQL> select extract(hour from timestamp '2019-3-26 13:35:26') from dual;
EXTRACT(HOURFROMTIMESTAMP'2019-3-2613:35:26')
---------------------------------------------
13
获取系统时间函数:sysdate,默认格式DD-MON-RR(日-月-年),下例:
SQL> select sysdate from dual;
SYSDATE
--------------
26-3月 -19
日期操作:add_months(date.i),函数作用是返回在指定日期上添加的月份【i可以是任何数,若是小数则截取整数,若是负数,则相当于在原来的日期上剪去相应月份】
SQL> select add_months(sysdate,3),add_months(sysdate,-3),add_months(sysdate,0.5) from dual;
ADD_MONTHS(SYS ADD_MONTHS(SYS ADD_MONTHS(SYS
-------------- -------------- --------------
26-6月 -19 26-12月-18 26-3月 -19
SQL> select add_months(sysdate,3),add_months(sysdate,-3),add_months(sysdate,1.5) from dual;
ADD_MONTHS(SYS ADD_MONTHS(SYS ADD_MONTHS(SYS
-------------- -------------- --------------
26-6月 -19 26-12月-18 26-4月 -19
函数next_day(date,char):如果char的值是“星期一”,则返回date指定日期的下一个星期一是哪天。
函数last_day(date):返回月最后一天是几号。
函数month_between(date1,date2):返回两个日期之间相隔的月份。下例:
SQL> select months_between('26-3月-19','10-1月-19')from dual;
MONTHS_BETWEEN('26-3月-19','10-1月-19')
---------------------------------------
2.51612903
函数extract(date from datetime):获取当前时间的年或月或日,下例:
SQL> select extract(year from sysdate)from dual;
EXTRACT(YEARFROMSYSDATE)
------------------------
2019
sysdate可以表示时间类型,再看一个例子:
SQL> select extract(hour from timestamp '2019-3-26 13:35:26') from dual;
EXTRACT(HOURFROMTIMESTAMP'2019-3-2613:35:26')
---------------------------------------------
13
日期函数
系统时间:SYSDATE 默认格式:DD-MON-RR
日期操作:
ADD_MONTH(date,i)
i>0表示原有月份+i,i为小数,系统自动截取整数在计算,i<0表示原有月份-i
NEXT_DAY(date,char)函数的作用是:
如果char的值是‘星期一’,则返回date指定日期的下周一是哪一天
LAST_DAY(date):日期所在月的最后一天
MONTHS_BETWEEN(date1,date2):计算两个时间的月份差
select months_between('20-5月-15',‘10-1月-15’) from dual;
EXTRACT(date FROM datetime): 作用:可用于提取日期时间的某一部分
select extract(year from sysdate) from dual; ---返回当前系统时间的年份
select extract(hour from timestamp '2015-10-1 17:25:13') from dual; ---返回当前系统时间的小时 所以结果为17
对日期操作
返回系统日期:select sysdate from dual;
ADD_MONTHS(date,i) i表示要加上或者减去的时间;
NEXT_DAY(date,char) char输入星期,返回date日期的下一个char;
MONTH_BETWEEN(date1,date2)返回两个日期间的月份差;
ECTRACT(date FROM datetime) date表示要返回的年,月,日;
select sysdate from dual;
sysdate
日—月—年
30-3月-15