sql基础知识:日期的常用用法
2016-10-11 18:08
344 查看
日期操作
select sysdate,add_months(sysdate,12) from dual; -- + 1 year select sysdate,add_months(sysdate,1) from dual; -- + 1 month select sysdate,to_char(sysdate+7,'yyyy-mm-dd HH24:MI:SS') from dual; -- + 1 week select sysdate,to_char(sysdate+1,'yyyy-mm-dd HH24:MI:SS') from dual; -- + 1 day select sysdate,to_char(sysdate+1/24,'yyyy-mm-dd HH24:MI:SS') from dual; -- + 1 hour select sysdate,to_char(sysdate+1/24/60,'yyyy-mm-dd HH24:MI:SS') from dual; -- + 1 min select sysdate,to_char(sysdate+1/24/60/60,'yyyy-mm-dd HH24:MI:SS') from dual; -- + 1 second select sysdate,add_months(sysdate,-12) from dual; -- - 1 year select sysdate,add_months(sysdate,-1) from dual; -- - 1 month select sysdate,to_char(sysdate-7,'yyyy-mm-dd HH24:MI:SS') from dual; -- - 1 week select sysdate,to_char(sysdate-1,'yyyy-mm-dd HH24:MI:SS') from dual; -- - 1 day select sysdate,to_char(sysdate-1/24,'yyyy-mm-dd HH24:MI:SS') from dual; -- - 1 hour select sysdate,to_char(sysdate-1/24/60,'yyyy-mm-dd HH24:MI:SS') from dual; -- - 1 min select sysdate,to_char(sysdate-1/24/60/60,'yyyy-mm-dd HH24:MI:SS') from dual; -- - 1 second
日期处理
select sysdate,to_char(sysdate,'yyyy-mm-dd HH24:MI:SS') from dual; select sysdate,to_char(sysdate,'yyyy') from dual;--年 select sysdate,to_char(sysdate,'Q') from dual;--季度 select sysdate,to_char(sysdate,'mm') from dual;--月 select sysdate,to_char(sysdate,'dd') from dual;--日 select sysdate,to_char(sysdate,'ddd') from dual;--年中的第几天 select sysdate,to_char(sysdate,'WW') from dual;--年中的第几个星期 select sysdate,to_char(sysdate,'W') from dual;--该月的第几个星期 select sysdate,to_char(sysdate,'D') from dual;--周中的第几天 select sysdate,to_char(sysdate,'hh') from dual;--12进制 的小时 select sysdate,to_char(sysdate,'hh24') from dual;--24进制 的小时 select sysdate,to_char(sysdate,'Mi') from dual;--分钟 select sysdate,to_char(sysdate,'ss') from dual;--秒
常用的日期操作
-- 得到当前的日期 select sysdate from dual; -- 得到当天凌晨0点0分0秒的日期 select trunc(sysdate) from dual; -- 得到当天的最后一秒 x年x月x日 23:59:59 select trunc(sysdate)+0.99999 from dual; -- 得到明天凌晨0点0分0秒的日期 select trunc(sysdate)+1 from dual; -- 得到本月1号的日期 select trunc(sysdate,'mm') from dual; -- 得到下个月1号的日期 select trunc(add_months(sysdate,1),'mm') from dual; -- 得到当月的最后一天 select last_day(sysdate), last_day(trunc(sysdate)), trunc(last_day(sysdate)), trunc(add_months(sysdate,1),'mm') - 1 from dual; select * from all_objects; -- 得到一年的每一天 select trunc(sysdate,'yyyy')+ rn -1 date0 from (select rownum rn from all_objects where rownum<366); -- 判断是闰年还是平年 select decode(to_char(last_day(trunc(sysdate,'y')+31),'dd'),'29','闰年','平年') from dual; -- 解析 select trunc(sysdate,'y') from dual;--获取当前年份的1月1日 select trunc(sysdate,'y')+31 from dual;--获取当前年份的2月1日 select to_char(last_day(trunc(sysdate,'y')+31),'dd') from dual;--获取2月份的最后一天
注意
ALL_OBJECTS describes all objects accessible to the current user. 描述当前用户有访问权限的所有对象DBA_OBJECTS describes all objects in the database. 描述了数据库中的所有对象
USER_OBJECTS describes all objects owned by the current user. 描述了当前用户所拥有的所有对象
千万不要觉得all_和dba_视图都是所有对象的意思, all_和权限有关;
所以出现【不同用户访问all_objects视图,相同过滤条件,结果不同 (例如:"A用户访问all_objects视图过滤B.T1表有数据,而C用户也访问all_objects视图过滤B.T1表却没有数据" )】是正常的,是因为C用户没有访问B.T1表权限,用dba_objects可以解决;
所以适当的选择 dba_和all_*视图。
参考
日期操作all_表是什么鬼
相关文章推荐
- oralce 基础知识 ,oralce 常用简单sql语句,oracle 新手必看之一
- oralce 基础知识 ,oralce 常用简单sql语句,oracle 新手必看之一
- MySql 基础知识-常用命令及sql语句
- SQL (mysql)最常用代码整理 基础知识
- sql常用基础知识
- 基础的prototype.js常用函数及其用法
- SQL基础:常用SQL语句详解
- sql基础知识
- sql基础知识
- SQL的详细语法介绍——对于学习数据库最基础知识二
- SQL基础:常用SQL语句详解
- 常用SQL语句(原创,以sqlServer为基础)
- SQL基础:常用SQL语句详解
- oracle中SQL语句的一些有效常用用法
- SQL基础:常用SQL语句详解
- SQL基础:常用SQL语句详解
- 基础的prototype.js常用函数及其用法
- sql-server中,Convert函数在查询日期中的用法。
- 编写 SQL 查询:让我们从基础知识开始
- Sql语句--日期函数用法