这篇文章主要介绍了Oracle怎么在SQL语句中对时间操作、运算的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Oracle怎么在SQL语句中对时间操作、运算文章都会有所收获,下面我们一起来看看吧。
1)区别
date精确到年月日时分秒,timestamp更精确一些;
但这个不重要,重要的是,实践中我从Oracle数据库取date类型字段,前端展示时分秒都是0,网上说数据库类型是date取到前端就是这样,只能精确到日,后面都是默认填0;
我给字段换成timestamp确实问题解决了,我理解不了!
2)转换
timeStamp --> date
TO_DATE(to_char(xxxTimestamp, 'yyyy-mm-dd hh34:mi:ss'), 'yyyy-mm-dd hh34:mi:ss')
date -->timeStamp
TO_TIMESTAMP(to_char(xxxDate, 'yyyy-mm-dd hh34:mi:ss'), 'yyyy-mm-dd hh34:mi:ss')
date类型的:
sysdate
timestamp类型的:
SYSTIMESTAMP
char类型的:
to_char(sysdate, ‘yyyy-mm-dd hh34:mi:ss’)
select to_char(sysdate, ‘yyyy' ) from dual; --年 select to_char(sysdate, ‘MM' ) from dual; --月 select to_char(sysdate, ‘dd' ) from dual; --日 select to_char(sysdate, ‘Q') from dual; --季 select to_char(sysdate, ‘iw') from dual; --周–按日历上的那种,每年有52或者53周
当前时间减去7分钟的时间
select 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 - interval ‘7' month from dual;
当前时间减去7年的时间
select sysdate - interval ‘7' year from dual;
时间间隔乘以一个数字
select sysdate - 8*interval ‘7' hour from dual;
//获取当年的一月一号 to_date(concat((select to_char(sysdate,‘yyyy') from dual), ‘-01-01 00:00:00'),‘yyyy-MM-dd HH24:mi:ss') //date格式 //获取这个月的一月一号 SELECT LAST_DAY(ADD_MONTHS(SYSDATE, -1)) + 1 FROM DUAL; //date格式
char格式
SELECT TO_CHAR(LAST_DAY(ADD_MONTHS(SYSDATE, -1)) + 1,‘yyyy-mm-dd HH24:mi:ss') FROM DUAL;
SELECT users.* FROM users WHERE create_time >= '2021-12-01 00:00:00' AND create_time <= '2021-12-06 00:00:00'
或者
SELECT users.* FROM users WHERE create_time BETWEEN '2021-12-01' AND '2021-12-07';
关于“Oracle怎么在SQL语句中对时间操作、运算”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Oracle怎么在SQL语句中对时间操作、运算”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。