ORACLE日期时间处理
2013-02-05 16:47
603 查看
Sql代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/27/be717a6d1f7e8c45f6970087f22f3163.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/27/1e21c9e5736e276b3f43a139afd637df.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/27/8377e770156a76ce821ffc270f027563.gif)
--感觉ORACLE对日期的处理比MS较方便些
--修改会话日期时间格式
ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS';
--修改会话日期时间语言
ALTER SESSION SET NLS_DATE_LANGUAGE =
'AMERICAN';
--当前时间前N分钟
SELECT SYSDATE-INTERVAL 'N'
MINUTE FROM DUAL;
--当前时间前N小时
SELECT SYSDATE-INTERVAL 'N'
HOUR FROM DUAL;
--N天前的这时
SELECT SYSDATE-INTERVAL 'N'
DAY FROM DUAL;
--N月前的这时
SELECT SYSDATE-INTERVAL 'N'
MONTH FROM DUAL;
SELECT ADD_MONTHS(SYSDATE,-N)
FROM DUAL;
--N年前的这时
SELECT SYSDATE-INTERVAL 'N'
YEAR FROM DUAL;
--本月最后一天
SELECT LAST_DAY(SYSDATE) FROM DUAL;
--日期间的相差月数
SELECT MONTHS_BETWEEN(SYSDATE,TO_DATE('2010-01-12','YYYY-MM-DD'))FROM DUAL;
其实再加上字符串和日期转换函数TO_CHAR和TO_DATE基本的计算已经差不多了。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/27/be717a6d1f7e8c45f6970087f22f3163.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/27/1e21c9e5736e276b3f43a139afd637df.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201910/27/8377e770156a76ce821ffc270f027563.gif)
--感觉ORACLE对日期的处理比MS较方便些
--修改会话日期时间格式
ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS';
--修改会话日期时间语言
ALTER SESSION SET NLS_DATE_LANGUAGE =
'AMERICAN';
--当前时间前N分钟
SELECT SYSDATE-INTERVAL 'N'
MINUTE FROM DUAL;
--当前时间前N小时
SELECT SYSDATE-INTERVAL 'N'
HOUR FROM DUAL;
--N天前的这时
SELECT SYSDATE-INTERVAL 'N'
DAY FROM DUAL;
--N月前的这时
SELECT SYSDATE-INTERVAL 'N'
MONTH FROM DUAL;
SELECT ADD_MONTHS(SYSDATE,-N)
FROM DUAL;
--N年前的这时
SELECT SYSDATE-INTERVAL 'N'
YEAR FROM DUAL;
--本月最后一天
SELECT LAST_DAY(SYSDATE) FROM DUAL;
--日期间的相差月数
SELECT MONTHS_BETWEEN(SYSDATE,TO_DATE('2010-01-12','YYYY-MM-DD'))FROM DUAL;
--感觉ORACLE对日期的处理比MS较方便些 --修改会话日期时间格式 ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'; --修改会话日期时间语言 ALTER SESSION SET NLS_DATE_LANGUAGE = 'AMERICAN'; --当前时间前N分钟 SELECT SYSDATE-INTERVAL 'N' MINUTE FROM DUAL; --当前时间前N小时 SELECT SYSDATE-INTERVAL 'N' HOUR FROM DUAL; --N天前的这时 SELECT SYSDATE-INTERVAL 'N' DAY FROM DUAL; --N月前的这时 SELECT SYSDATE-INTERVAL 'N' MONTH FROM DUAL; SELECT ADD_MONTHS(SYSDATE,-N) FROM DUAL; --N年前的这时 SELECT SYSDATE-INTERVAL 'N' YEAR FROM DUAL; --本月最后一天 SELECT LAST_DAY(SYSDATE) FROM DUAL; --日期间的相差月数 SELECT MONTHS_BETWEEN(SYSDATE,TO_DATE('2010-01-12','YYYY-MM-DD'))FROM DUAL;
其实再加上字符串和日期转换函数TO_CHAR和TO_DATE基本的计算已经差不多了。
相关文章推荐
- ORACLE时间日期星期(SYSDATE)相关处理
- 精通 Oracle+Python,第 2 部分:处理时间和日期
- ORACLE/JSP技术涉及日期、时间问题的处理
- Oracle 11g学习笔记--日期和时间的存储与处理
- 42.Oracle数据库SQL开发之 日期和时间的存储与处理——Oracle对2位年份处理
- Oracle 日期和时间处理函数汇总
- ORACLE/JSP技术涉及日期、时间问题的处理
- ORACLE对日期时间的处理
- 精通 Oracle+Python,第 2 部分:处理时间和日期
- ORACLE 日期时间处理函数
- oracle中时间日期的处理
- Oracle中日期/时间的处理
- Oracle 日期和时间的存储于处理
- Oracle中的时间和日期处理
- ORACLE对时间日期的处理(转)
- oracle的日期和时间的处理
- Oracle 日期和时间的存储于处理
- [原创] Legato 8.1 oracle full backup skip 奇怪的问题处理过程 -- 非调度日期手工运行调度也不成功(skip)
- Oracle时间日期操作
- MySQL 的时间日期处理