前言
工作中使用到了 Oracle 的一些日期函数,记录一下以防忘记,如有错误,还请指正。
一、select 查询 if 判断条件
语法
SELECT CASE 1
WHEN 1 THEN
'a'
WHEN 2 THEN
'b'
ELSE
'c'
END AS WE
FROM DUAL
执行结果
二、拼接日期
语法
select v01301,
stt_Date,
CASE
WHEN to_char(stt_Date, 'mm') > 1 THEN
to_date(CONCAT(to_char(add_months(stt_Date, 12), 'yyyy'),'/01/01'), 'yyyy/mm/dd')
ELSE
stt_Date
END AS WE
from xxx;
结果
解释
- CONCAT():拼接俩个字符串,也可以使用“||”代替
- to_char() :格式化日期,返回字符串类型
- to_date():格式化日期,返回 date 类型
三、时间的加减语法
select sysdate, add_months(sysdate, 12) from dual; --加1年
select sysdate, add_months(sysdate, 1) from dual; --加1月
select sysdate, to_char(sysdate + 7, 'yyyy-mm-dd HH24:MI:SS') from dual; --加1星期
select sysdate, to_char(sysdate + 1, 'yyyy-mm-dd HH24:MI:SS') from dual; --加1天
select sysdate, to_char(sysdate + 1 / 24, 'yyyy-mm-dd HH24:MI:SS') from dual; --加1小时
select sysdate, to_char(sysdate + 1 / 24 / 60, 'yyyy-mm-dd HH24:MI:SS') from dual; --加1分钟
select sysdate, to_char(sysdate + 1 / 24 / 60 / 60,'yyyy-mm-dd HH24:MI:SS') from dual; --加1秒
-- ====================================================================== --
select sysdate,add_months(sysdate,-12) from dual; --减1年
select sysdate,add_months(sysdate,-1) from dual; --减1月
select sysdate,to_char(sysdate-7,'yyyy-mm-dd HH24:MI:SS') from dual; --减1星期
select sysdate,to_char(sysdate-1,'yyyy-mm-dd HH24:MI:SS') from dual; --减1天
select sysdate,to_char(sysdate-1/24,'yyyy-mm-dd HH24:MI:SS') from dual; --减1小时
select sysdate,to_char(sysdate-1/24/60,'yyyy-mm-dd HH24:MI:SS') from dual; --减1分钟
select sysdate,to_char(sysdate-1/24/60/60,'yyyy-mm-dd HH24:MI:SS') from dual; --减1秒
四、时间间隔操作
-- 当前时间减去7分钟的时间
select sysdate,sysdate - interval '7' MINUTE from dual
-- 当前时间减去7小时的时间
select sysdate - interval '7' hour from dual
-- 当前时间减去7天的时间
select sysdate - interval '7' day from dual
-- 当前时间减去7月的时间
select sysdate,sysdate - interval '7' month from dual
-- 当前时间减去7年的时间
select sysdate,sysdate - interval '7' year from dual
-- 时间间隔乘以一个数字
select sysdate,sysdate - 8 *interval '2' hour from dual
总结
Oracle 数据库的相关日期函数。