sql基础知识:日期的常用用法

日期操作

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_*视图。

参考

本文转自博客园xingoo的博客,原文链接:sql基础知识:日期的常用用法,如需转载请自行联系原博主。

时间: 2025-01-29 16:30:09

sql基础知识:日期的常用用法的相关文章

sql基础知识:分页+排序

Oracle的分页还真是挺恶心地,不像mysql直接Limit就搞定 select name from student limit 0,20; Oracle需要借助rownum实现: select * from ( select s.*, rownum as rn from student s where rownum <= 10 ) m where m.rn > 0 如果要增加排序,可以引入order by select * from ( select c.*, rownum as rn f

SQL学习笔记一SQL基础知识

常用字段类型bit(0和1),datetime,int,varchar,nvarchar(可能含有中文用nvarchar) Varchar,nvarchar和char(n)的区别char(n)不足长度n的部分用空格填充. SQL语句中,字符串用单引号. SQL语句大小写不敏感.不敏感是指SQL的关键字,字符串值还是敏感的. 简单的INSERT语句 INSERT INTO Person(Id,Name,Age) VALUES(1,'Jim',20) 常用int和uniqueidentifier做主

Redis基础知识之————php-Redis 常用命令专题

Keys del,delete - 删除键 dump - 返回存储在指定键值的序列化版本. exists - 确定键是否存在 expire,setTimeout,pexpire - 设置键的生存时间(以秒为单位) expireAt,pexpireAt - 将密钥的到期时间设置为UNIX时间戳 keys,getKeys - 查找与给定模式匹配的所有键 scan - 扫描键空间中的键(Redis> = 2.8.0) migrate - 将密钥从Redis实例原子传输到另一个实例 move - 将键移

Sql Server的日期格式化常用函数

Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16 Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06 Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16 Select CONVERT(varchar(10

js常用数组操作方法简明总结_基础知识

//javascript 中的数组分割 var colors = ["red","green","blue"]; //alert(colors.toString()); alert(colors.join("|")); //返回结果是red|green|blue var colors = ["red","green","blue",null]; alert(color

SQL基础--&amp;gt;过滤和排序

--======================================= --SQL基础-->过滤和排序 --======================================= /* 一.使用WHERE字句实现对数据的过滤     用法:SELECT *|{[DISTINCT] column|expression [alias],...}           FROM table           [WHERE condition(s)]; 二.多条件连接     AND

浅析JS操作DOM的一些常用方法_基础知识

getElementById(): 获取有指定惟一ID属性值文档中的元素 getElementsByName(name): 返回的是数组 getElementsByTagName(): 返回具有指定标签名的元素子元素集合 getAttribute(): 返回指定属性名的属性值 document.getElementsByTagName("a")[0].getAttribute("target"); setAttribute(): 添加指定的属性,并为其赋指定的值.

sql注入之必备的基础知识_数据库其它

什么是SQL注入(SQL Injection) 所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令.在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击. mysql常用注释     #     --[空格]或者是--+     /*-*/ 在注意过程中,这些注释可能都需要进行urlencode. mysql认证绕过       ;%00     

SQL 基础--&amp;gt;常用函数

--================================== --SQL 基础-->常用函数 --================================== /* 一.函数的分类     SQL函数一般分为两种     单行函数 基于单行的处理,一行产生一个结果     多行函数 基于多行的处理,对多行进行汇总,多行产生结果   二.函数形式     function_name [(arg1, arg2,...)]   三.常用的单行函数:  1. 字符函数:     lo