ORACLE时间函数(SYSDATE)深入理解
Posted 静流年乱浮生
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORACLE时间函数(SYSDATE)深入理解相关的知识,希望对你有一定的参考价值。
加法 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秒
ORACLE时间函数:SYSDATE简析
1.获得当前日期是本月第几周:
1 SELECT TO_CHAR(SYSDATE,‘YYYYMMDD W HH24:MI:SS‘) FROM DUAL; 2 3 SELECT TO_CHAR(SYSDATE,‘W‘) FROM DUAL;
2:取得当前日期是一个星期中的第几天,注意星期日是第一天 SQL> SELECT SYSDATE,TO_CHAR(SYSDATE,‘D‘) FROM DUAL; SYSDATE T --------- - 27-MAR-03 5 类似: SELECT TO_CHAR(SYSDATE,‘yyyy‘) FROM DUAL; --年 SELECT TO_CHAR(SYSDATE,‘Q‘ FROM DUAL; --季 SELECT TO_CHAR(SYSDATE,‘mm‘) FROM DUAL; --月 SELECT TO_CHAR(SYSDATE,‘dd‘) FROM DUAL; --日 DDD 年中的第几天 WW 年中的第几个星期 W 该月中第几个星期 D 周中的星期几 HH 小时(12) HH24 小时(24) MI 分 SS 秒 3:取当前日期是星期几中文显示: SQL> SELECT TO_CHAR(SYSDATE,‘day‘) FROM DUAL; TO_CHAR(SYSDATE,‘DAY‘) ---------------------- 星期四 4:如果一个表在一个DATE类型的字段上面建立了索引,如何使用 ALTER SESSION SET NLS_DATE_FORMAT=‘YYYY-MM-DD HH24:MI:SS‘ 5: 得到当前的日期 SELECT SYSDATE FROM DUAL; 6: 得到当天凌晨0点0分0秒的日期 SELECT TRUNC(SYSDATE) FROM DUAL; -- 得到这天的最后一秒 SELECT TRUNC(SYSDATE) + 0.99999 FROM DUAL; -- 得到小时的具体数值 SELECT TRUNC(SYSDATE) + 1/24 FROM DUAL; SELECT TRUNC(SYSDATE) + 7/24 FROM DUAL; 7.得到明天凌晨0点0分0秒的日期 SELECT TRUNC(SYSDATE+1) FROM DUAL; SELECT TRUNC(SYSDATE)+1 FROM DUAL; 8: 本月一日的日期 SELECT TRUNC(SYSDATE,‘mm‘) FROM DUAL; 9:得到下月一日的日期 SELECT TRUNC(ADD_MONTHS(SYSDATE,1),‘mm‘) FROM DUAL; 10:返回当前月的最后一天? SELECT LAST_DAY(SYSDATE) FROM DUAL; SELECT LAST_DAY(TRUNC(SYSDATE)) FROM DUAL; SELECT TRUNC(LAST_DAY(SYSDATE)) FROM DUAL; SELECT TRUNC(ADD_MONTHS(SYSDATE,1),‘mm‘) - 1 FROM DUAL; 11: 得到一年的每一天 SELECT TRUNC(SYSDATE,‘yyyy‘)+ RN -1 DATE0 FROM (SELECT ROWNUM RN FROM ALL_OBJECTS WHERE ROWNUM<366); 12:今天是今年的第N天 SELECT TO_CHAR(SYSDATE,‘DDD‘) FROM DUAL; 13:如何在给现有的日期加上2年 SELECT ADD_MONTHS(SYSDATE,24) FROM DUAL; 14:判断某一日子所在年分是否为润年 SELECT DECODE(TO_CHAR(LAST_DAY(TRUNC(SYSDATE,‘y‘)+31),‘dd‘),‘29‘,‘闰年‘,‘平年‘) FROM DUAL; 15:判断两年后是否为润年 SELECT DECODE(TO_CHAR(LAST_DAY(TRUNC(ADD_MONTHS(SYSDATE,24),‘y‘)+31),‘dd‘),‘29‘,‘闰年‘,‘平年‘) FROM DUAL; 16:得到日期的季度 SELECT CEIL(TO_NUMBER(TO_CHAR(SYSDATE,‘mm‘))/3) FROM DUAL; SELECT TO_CHAR(SYSDATE, ‘Q‘) FROM DUAL;
以上是关于ORACLE时间函数(SYSDATE)深入理解的主要内容,如果未能解决你的问题,请参考以下文章
mysql中now()函数的使用,还有oracle的sysdate