目录0、date与timestamp1、获取系统当前时间2、ORACLE里获取一个时间的年、季、月、周、日的函数:3、日期操作4、常用的时间戳5、查询某时间范围总结
0、date与timestamp
1)区别
date精确到年月日时分秒,timestamp更精确一些;
但这个不重要,重要的是,实践中我从Oracle数据库取date类型字段,前端展示时分秒都是0,网上说数据库类型是date取到前端就是这样,只能精确到日,后面都是默认填0;我给字段换成timestamp确实问题解决了,我理解不了!
2)转换
timeStamp –> date
TO_DATE(to_char(xxxTimestamp, \’yyyy-mm-dd hh24:mi:ss\’), \’yyyy-mm-dd hh24:mi:ss\’)
date –>timeStamp
TO_TIMESTAMP(to_char(xxxDate, \’yyyy-mm-dd hh24:mi:ss\’), \’yyyy-mm-dd hh24:mi:ss\’)
1、获取系统当前时间
date类型的:
sysdate
timestamp类型的:
SYSTIMESTAMP
char类型的:
to_char(sysdate, ‘yyyy-mm-dd hh24:mi:ss’)
2、ORACLE里获取一个时间的年、季、月、周、日的函数: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周
3、日期操作
当前时间减去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;
4、常用的时间戳//获取当年的一月一号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;
5、查询某时间范围SELECT users.* FROM usersWHERE create_time >= \’2021-12-01 00:00:00\’ AND create_time <= \’2021-12-06 00:00:00\’
或者
SELECT users.* FROM usersWHERE create_time BETWEEN \’2021-12-01\’ AND \’2021-12-07\’;
总结
到此这篇关于Oracle如何在SQL语句中对时间操作、运算的文章就介绍到这了,更多相关Oracle对时间操作运算内容请搜索悠久资源以前的文章或继续浏览下面的相关文章希望大家以后多多支持悠久资源!