码迷,mamicode.com
首页 > 数据库 > 详细

ORACLE时间函数(SYSDATE)深入理解

时间:2018-09-28 12:54:38      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:dual   使用   类型   rownum   trunc   ast   sel   for   第一天   

加法 
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)深入理解

标签:dual   使用   类型   rownum   trunc   ast   sel   for   第一天   

原文地址:https://www.cnblogs.com/forever-love-zjl/p/9717413.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!