db2日期函数和oracle的区别
来源:互联网 发布:免费刷永久qq会员软件 编辑:程序博客网 时间:2024/04/29 00:47
在db2中,可以用字符串来表示日期时间类型,数据库系统会自动在内部把他们转换为日期时间类型;
但是在oracle中必须手工显示的使用to_date函数把字符串表示的日期时间进行转换才可以。
比如:
db2中: select days('2011-01-01')-days('2011-01-02') from sysibm.sysdummy1; --- -1
oracle中:select to_char(to_date('2011-01-01','yyyy-mm-dd')-1,'yyyy-mm-dd') from dual; --- 2010-12-31
oracle中的日期函数如下:
Oracle中可以直接使用加号“+”来进行日期的加法运算,其计算单位为“天”,比如date+3
就表示在日期date的基础上增加三天;同理使用减号“-”则可以用来计算日期前的特定时间
段的时间,比如date-3就表示在日期date的三天前的日期。
例子如下:
select to_char(to_date('2011-01-04','yyyy-mm-dd')-3,'yyyy-mm-dd'),to_char(to_date('2011-01-04','yyyy-mm-dd')+3,'yyyy-mm-dd') from dual;
---------------------------------------
2011-01-01 2011-01-07
同时如果在oracle中建立了一个表,其中某一列比如today定义为date型了,那么在想表中的today字段插入数据的时候,就只能使用to_date(日期字符串,'yyyy-mm-dd')来向
字段中插入数据,否则oracle会报错。而对于db2来讲,可以直接插入('2011-01-01')之类的日期值,而不用做转换。
oracle可以使用换算的方式来进行以周、小时、分钟等为单位的日期加减运算,比如下面的
SQL语句用于计算当前2小时10分钟后以及3周后的日期:
select sysdate from dual;
sysdate
---------------------------
2012/3/4 22:06:03
select sysdate+2/24+10/(60*24) date1,sysdate+3*7 date2 from dual;
date1 date2
-----------------------------------------------------------------
2012/3/5 0:16:03 2012/3/25 22:06:03
使用加减运算我们可以很容易的实现以周、天、小时、分钟、秒等为单位的日期的增减运
算,不过由于每个月的天数是不同的,也就是在天和月之间不存在固定的换算率,所以无法使用
加减运算实现以月为单位的计算,为此Oracle中提供了ADD_MONTHS()函数用于以月为单位的
日期增减运算,ADD_MONTHS()函数的参数格式如下:
ADD_MONTHS(date,number)
其中参数date为待计算的日期,参数number为要增加的月份数,如果number为负数则表
示进行日期的减运算。
举例如下:
select sysdate,add_months(sysdate,3) sysdate3,add_months(sysdate,-2) sysdate2 from dual;
sysdate sysdate3 sysdate2
------------------------------------------------------------------------------------------------------
2012/3/4 22:09:22 2012/6/4 22:09:22 2012/1/4 22:09:22
如下面的SQL语句用于计算当前日期两个月零10天后以及3个月零10个小时前的日期
时间:
select sysdate,add_months(sysdate,2)+10 sysdate1,add_months(sysdate,-3)-10/24 sysdate2 from dual;
sysdate sysdate1 sysdate2
--------------------------------------------------------------------------------------------
2012/3/4 22:37:07 2012/5/14 22:37:07 2011/12/4 12:37:07
原文:http://blog.csdn.net/dlodj/article/details/7318761
- db2日期函数和oracle的区别
- db2日期函数和oracle的区别
- DB2和Oracle区别
- DB2和Oracle区别
- db2和oracle区别
- DB2和Oracle区别
- oracle和sql server DB2的区别
- oracle和db2的sql语句区别
- oracle和db2的sql语句区别
- DB2创建表和oracle的区别
- db2和oracle的一些区别
- DB2和Oracle常用语法的区别
- Oracle和DB2转换的部分区别
- db2 日期操作的函数
- DB2中有关日期和时间的函数,及应用
- DB2中有关日期和时间的函数及应用
- DB2中有关日期和时间的函数,及应用
- DB2中有关日期和时间的函数,及应用
- (Relax 线段树1.1)POJ 3468 A Simple Problem with Integers(线段树子区间更新的维护:集中更新和动态统计子序列中的数据)
- Ubuntu安装JDK+Eclipse
- apache/php 性能大幅提升关键参数
- Curling 2.0
- Python函数式编程指南(一):概述
- db2日期函数和oracle的区别
- linux 命令lsof 用法
- Arcgis server 10服务无法启动
- ViewPager页面懒加载与缓存页面数量可控
- listview文本不能全部显示时
- 全面剖析C#正则表达式
- 通过sysfs获取dmi硬件信息
- 《Linux设备节点创建》用户空间ueventd创建设备节点规则
- 内存管理,问题由来