oracle系统函数(日期函数)
调用日期函数时,首先要明确两个概念,时间戳和日期是不同的,日期中包括年月日但不包括小时分钟秒,时间戳包括年月日小时分钟秒。在oracle中,一般情况下,函数中包含date字符的和日期有关,包含timestamp的函数和时间戳有关(时间戳可以理解为时间)。oracle中,日期一般以天为基本单位,时间相减时结果单位为天,时间与数字相加时,默认加对应数字的天数。
一、调用时无参无括号时间函数
1.返回系统当前日期sysdate
--该函数返回值没有时间戳
select sysdate from dual;
2.返回会话中的日期和时间localtimestamp
--不包括时区
select localtimestamp from dual;
3.返回会话时区中的当前日期和时间current_timestamp
--包括时区
select current_timestamp from dual;
4.返回当前会话时区中的当前日期current_date
select current_date from dual;
5.返回数据库时区设置dbtimezone
select dbtimezone from dual;
6.返回当前会话时区sessiontimezone
select sessiontimezone from dual;
7.变动日期时间数值interval
--设置数值代表秒,分,小时,天,月,年
例如:
interval '1' second 1秒
interval '1' minute 1分
interval '1' hour 1小时
interval '1' day 1天(系统默认)
interval '1' month 1月
interval '1' year 1年
select trunc(sysdate)+(interval '' second),--加1s
trunc(sysdate)+(interval '' hour),--加1个小时
trunc(sysdate)+(interval '' day),--加1天
trunc(sysdate)+1--加1天
from dual;
二、调用时有括号的日期函数
1.返回指定月数后的日期add_months()
select add_months(sysdate,3) from dual;
等价于
select trunc(sysdate)+interval '' month from dual;
2.返回本月最后一天的日期last_day()
select last_day(sysdate) from dual;
返回本月第一天
select trunc(sysdate,'month') from dual;
3.返回2个日期间隔月数month_between()
select months_between(sysdate,to_date('2015-09-01','YYYY-MM-DD'))
from dual;
4.四舍五入后的期间第一天round()
select sysdate,
round(sysdate),--最近0点日期
round(sysdate,'day'),--最近星期日
round(sysdate,'month'),--最近月初
round(sysdate,'q'),--最近季出日期
round(sysdate,'year')--最近年初日期
from dual;
5.返回日期所在期间的第一天trunc()
select trunc(sysdate),--今天日期
trunc(sysdate,'day'),--本周星期日,等价于trunc(sysdate,'D')和trunc(sysdate,'d')
trunc(sysdate,'month'),--本月初,若trunc(sysdate,'M')和trunc(sysdate,'m')则执行出错
trunc(sysdate,'q'),--本季初日期
trunc(sysdate,'year')--本年初日期,等价于trunc(sysdate,'Y')和trunc(sysdate,'y')
from dual;
6.返回下周某一天的日期next_day(),可以返回下周的周一到周日
select sysdate,
next_day(sysdate,'星期一'),--返回下周星期一
next_day(sysdate,'星期二')--返回下周星期二
from dual;
7.提取时间日期中数据extract()
--提取小时,分钟,秒时需要加上timestamp
select
extract(minute from timestamp '2015-2-16 2:38:40'),--timestamp时间戳
extract(hour from timestamp '2015-2-16 2:38:40'),
--extract(hour from timestamp(sysdate)),错误
extract(hour from localtimestamp),--返回值错误
extract(hour from current_timestamp),
extract(day from sysdate),--日
extract(month from sysdate),
extract(year from sysdate)
from dual;
总结:关于日期的函数还是挺多的,但是常用的一般为sysdate,localtimestramp,trunc,interval和extract,重点掌握这些应该足够了,其他不常用的可以用的时候再查找。
Oracle函数——日期函数
Oracle中的时间类型只有date和TIMESTAMP,TIMESTAMP是比date更精确的类型.日期时间函数用于处理时间类型的数据,Oracle以7位数字格式来存放日期数据,包括世纪.年.月.日 ...
Oracle数据库之日期函数
今天给大家介绍一下oracle数据中的日期函数的用法.废话不多说,我们看一下oracle给我们提供了那些函数? 1.sysdate 用途:获取当前系统时间. 2.to_date('字符类型','日期类 ...
SQL 标量函数-----日期函数 day() 、month()、year()
select day(createtime) from life_unite_product --取时间字段的天值 select month(createtime) from life_unite_p ...
SQL标量函数-日期函数
select day(createtime) from life_unite_product --取时间字段的天值 select month(createtime) from life_uni ...
MySQL 进阶4 SQL常见函数: 字符函数/数学函数/日期函数/流程控制函数(if/case)
# 进阶4 SQL常见函数 分类: 1/单行函数: 字符函数: concat(),length(),ifnull(__,default) ,instr(), trim(),upper(),lower( ...
SQL 标量函数-----日期函数 day() 、month()、year() 转载
select day(createtime) from life_unite_product --取时间字段的天值 select month(createtime) from life_u ...
SQL 标量函数-----日期函数datediff()、 day() 、month()、year()
select day(createtime) from life_unite_product --取时间字段的天值 select month(createtime) from life_uni ...
oracle中的日期函数的使用
TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 显示值:07 ...
随机推荐
ECShop函数列表大全
lib_time.php gmtime() P: 获得当前格林威治时间的时间戳 /$0 server_timezone() P: 获得服务器的时区 /$0 local_mktime(hour=NULL ...
字符串和date之间的相互转换方法
/** * 字符串转Date方法 * @param dateStr * @param format 如yyyy-MM-dd HH:mm:ss等 * @return * @throws Exceptio ...
Oozie JMS通知消息实现--根据作业ID来过滤消息
一,介绍 本文使用Oozie的消息通知功能,并根据JMS规范中的消息选择器(Selector)实现 根据作业的ID来过滤消息. 首先搭建好JMS Provider(ActiveMQ) ,并进行相关配置 ...
【疯狂Java学习笔记】【第一章:Java语言概述】
[学习笔记]1.Java与C#的异同:Java与C#的相同之处有很多,它们均摒弃了C++面向对象的多继承.宏定义.全局变量.全局函数.指针等等难以使用的机制,添加进了成熟的机制,如垃圾回收.接口等等. ...
如何将Icon转成Bitmap(对ICON的内部格式讲的比较清楚)
最近工作中有个需求是将Icon转成带Alpha通道的Bitmap, 虽然网上有不少这方面的文章,但很多都是错的, 这里记录下,或许对后来人有用. 要实现这个功能,我们首先需要理解Icon的格式,我 ...
LINUX系统GIT使用教程
Git使用笔记. 1 安装GIT $ sudo aptitude install git $ sudo aptitude install git-doc git-svn git-email git ...
Memcached 缓存服务器介绍
1.memcached 高性能分布式内存对象缓存系统 2.目的:减轻数据库负载,提高基于动态数据库驱动网站的响应速度 3.数据格式:文本行 4.协议:memcache协议 5.存储方式:hashMa ...
LRU和LFU的区别
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/guoweimelon/article/details/50855351 一.概念介绍 LRU和LFU ...
如何使用Android MediaStore裁剪大图片
译者按:在外企工作的半年多中花了不少时间在国外的网站上搜寻资料,其中有一些相当有含金量的文章,我会陆陆续续翻译成中文,与大家共享之.初次翻译,“信达雅”三境界恐怕只到信的层次,望大家见谅! 这篇文章相 ...
ASP.NET Core优化MD5加密
MD5是我们常用的一种加密方式,但是有朋友和我说C#自带的MD5方法碰撞阻力太低,担心安全问题 然后我这里开源一下我日常使用的优化后的MD5加密方法 代码中先创建出MD5对象后对字符串先进行MD5加密 ...