两个日期相差的月数
Select MONTHS_BETWEEN ('11-11月-18','11-11月-19')
from dual;
向指定日期中加上若干月数
select ADD_MONTHS ('1-2月-19',6)
from dual;
指定日期的下一个星期 * 对应的日期
Select NEXT_DAY ('28-2月-19','星期五')
from dual;
查询某年月的最后一天
select last_DAY ('28-3月-19')
from dual;
日期四舍五入
四舍五入到月。就是从天数开始,如果天数小于或等于15号,就归为当前月的1号,如果天数大于15号的,当前月份加1。
四舍五入到年。就是从月份开始,如果月份小于7月,则年份不变,如果月份大于6月的,则年份加1。
四舍五入到天。周日是星期的开始,如果当天小于星期四,则归为上周的星期天,如果当天大于星期三,则归为当周的星期天。
select ROUND(SYSDATE,'MONTH') , ROUND(SYSDATE ,'YEAR'),
ROUND(TO_DATE('01-3月-19'),'DAY')
from dual;
日期截断
截取到月,不管是哪一月,天数归为一号,月份年份不变
截取到年,不管是哪一年,月份天数都归为一,年份不变
截取到日,不管是那一天,截取到的日都是上周的星期天。月份年份不变。
select sysdate,TRUNC(sysdate,'MONTH'),TRUNC(SYSDATE,'YEAR') ,
TRUNC(SYSDATE,'DAY'),TRUNC(to_date('01-3月-19'),'MONTH')
from dual;
TO_CHAR函数对日期的转换
将系统的的默认时间格式转换为年月日时分秒格式
SELECT TO_CHAR(sysdate,'yyyy"年"-mm"月"-dd"日" hh:mi:ss') FROM dual;
抽取出年或者月或者日
extraact:提取数据
select extract (year from sysdate) year, extract (month from sysdate) month,
extract (day from sysdate) day from dual;
将时间转换成星期
select to_char(sysdate,'day')
from dual
数字函数:round(四舍五入)
函数将列、表达式或值转到n个小数位。
如果第二个参数是0或缺失,则值为十进制位置。
如果第二个参数是2,则该值四舍五入到两个小数点。
如果第二个参数是-2,则该值将转到左边的两个小数点。圆形函数也可以与日期函数一起使用
SELECT ROUND(45.923,2), ROUND(45.923,0), round
ROUND(45.923,-1)
FROM DUAL;
数字函数:trunc(截断)
TRUNC函数将列、表达式或值截断到n个小数位。截断函数与圆形函数相似的参数起作用。
如果第二个参数是0或缺失,则该值被截断为零十进制位置。
如果第二个参数是2,则该值被截断为两个小数点。相反,如果第二个参数是-2,则该值被截断到左边的两个小数点。
SELECT TRUNC(45.923,2), TRUNC(45.923),
TRUNC(45.923,-2)
FROM DUAL;