ORACLE SQL 日期处理

ORACLE SQL日期处理

Oracle 中的日期型数据实际含有两个值: 日期和时间

日期函数(6个函数)

  • MONTHS_BETWEEN 两个日期相差的月数
  • ADD_MONTHS 向指定日期中加上若干月数
  • NEXT_DAY 指定日期的下一个星期 * 对应的日期
  • LAST_DAY 本月的最后一天
  • ROUND 日期四舍五入
  • TRUNC 日期截断

注意(日期的数学运算):

1. 在日期上加上或减去一个数字结果仍为日期。
2. 两个日期相减返回日期之间相差的天数(日期不允许做加法运算,无意义)。
3. 可以用数字除24来向日期中加上或减去天数。

Select MONTHS_BETWEEN (sysdate,to_date('2019-1-1','yyyy-MM-DD')) from dual;

输出:
在这里插入图片描述

Select ADD_MONTHS (to_date('2019-1-1','yyyy-MM-DD'),6) from dual;

输出:
在这里插入图片描述

Select NEXT_DAY (to_date('2019-3-26','yyyy-MM-DD'),'星期日') from dual;--该星期的星期天是几号

输出:
在这里插入图片描述

Select LAST_DAY (to_date('2019-3-26','yyyy-MM-DD')) from dual;--该月最后一天

输出:
在这里插入图片描述

Select ROUND(to_date('2019-3-27', 'yyyy-MM-DD'),'MONTH') from dual;--该日四舍五入到月份

输出:
在这里插入图片描述

Select ROUND(to_date('2019-3-27', 'yyyy-MM-DD') ,'YEAR') from dual;--该日四舍五入到年份

输出:
在这里插入图片描述

Select TRUNC(to_date('2019-3-27', 'yyyy-MM-DD') ,'YEAR') from dual;--截取该月月份

在这里插入图片描述

Select TRUNC(to_date('2019-3-27', 'yyyy-MM-DD') ,'YEAR') from dual;--截取该年年份

在这里插入图片描述

Select (sysdate-to_date('2018-01-01','yyyy-MM-DD'))/7 as weeks from dual;--(用现在时间减去2018-1-1得到的时间再除以7(星期)便得到了周数)——(本sysdate时间为2019-3-27)

输出:
在这里插入图片描述
如下为常用的时间计算:

add_months——月份加减
Select sysdate,add_months(sysdate,5) from dual; --(加5个月)
Select sysdate,add_months(sysdate,-5) from dual; --(减5个月)
select sysdate,to_char(sysdate+5,'yyyy-mm-dd HH24:MI:SS') from dual; --(加5天)
select sysdate,to_char(sysdate-5,'yyyy-mm-dd HH24:MI:SS') from dual; --(减5天) 
select sysdate,to_char(sysdate-5/24,'yyyy-mm-dd HH24:MI:SS') from dual; --(减5小时) 
select sysdate,to_char(sysdate-5/24/60,'yyyy-mm-dd HH24:MI:SS') from dual; --(减5分钟 )
select sysdate,to_char(sysdate-5/24/60/60,'yyyy-mm-dd HH24:MI:SS') from dual; --(减5秒 )

Select to_char(sysdate,'YYYY-MM-DD') from dual;--(年-月-日)
Select to_char(sysdate,'yyyy') from dual;--(年) 
Select to_char(sysdate,'Q') from dual;--(季)
Select to_char(sysdate,'MM') from dual;--(月) 
Select to_char(sysdate,'DD') from dual;--(日) 
Select to_char(sysdate,'D') from dual;--(今天是这个星期的第几天"从星期天开始计算")
Select to_char(sysdate,'DD') from dual;--(今天是这个月的几号)
Select to_char(sysdate,'DDD') from dual;--(今天是今年的多少天)

你可能感兴趣的:(ORACLE,SQL)