《oracle马拉松》基础语法篇-时间

发布时间 2023-04-05 17:20:28作者: Fusio

oracle日期加减(sysdate、add_months的使用)

原文链接:https://www.cnblogs.com/muhai/p/15435679.html

一、针对天的操作,适用于日、时、分、秒

1、加一天

select sysdate,sysdate+1 from dual

image

2、加一个小时

select sysdate,sysdate+(1/24) from dual

image

3、加一分钟

select sysdate,sysdate+(1/24/60) from dual
--加一秒就再除以60,即sysdate+(1/24/60/60)

image

二、对月的操作,适合于月、年的操作(使用add_months()函数)

1、加或减一个月

select sysdate,ADD_MONTHS(SYSDATE,1)加一个月,ADD_MONTHS (SYSDATE,-1)减一个月 from dual

image

2、加或减一年

select sysdate,ADD_MONTHS (SYSDATE,1*12) 加一年,ADD_MONTHS (SYSDATE,-12) 减一年 from dual

image

获取上个月

原文链接:https://www.cnblogs.com/qq1040991197/p/3245937.html
这个要用到add_months()函数 参数 负数 代表 往前 正数 代表 往后。

select to_char(add_months(trunc(sysdate),-1),'yyyymm') from dual;
--上一个月

select to_char(add_months(trunc(sysdate),1),'yyyymm') from dual;
--下一个月

查询大于12点 小于17点的数据

select *
from ddd
where substr(to_char(ddd.cxsj,'yyyy-MM-dd HH24:mi:ss'),12,2)>'12'
and substr(to_char(ddd.cxsj,'yyyy-MM-dd HH24:mi:ss'),12,2)<'17'

在ORacle中怎么截取时间字段中的小时?

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual; //日期转化为字符串

select to_char(sysdate,'yyyy') as nowYear from dual; //获取时间的年

select to_char(sysdate,'mm') as nowMonth from dual; //获取时间的月

select to_char(sysdate,'dd') as nowDay from dual; //获取时间的日

select to_char(sysdate,'hh24') as nowHour from dual; //获取时间的时

select to_char(sysdate,'mi') as nowMinute from dual; //获取时间的分

select to_char(sysdate,'ss') as nowSecond from dual; //获取时间的秒