DB2ORACLE数据库语法对比

读书之法,在循序而渐进,熟读而精思

1.db2 sql语句中计算两个日期相差的语法

(1)timestampdiff(8,char(结束时间-开始时间) )(加时分秒计算,会舍去零数)值为744小时

(2)(days(结束时间)-days(开始时间))*24 +hour(结束时间)-hour(开始时间) (不加时分秒计算)值为745小时

(3)Days(结束日期)-days(开始日期)的值为31天 (4)Day(结束日期)-day(开始日期)的值为1天

(5)Hour(结束日期)-hour(开始日期)的值为1小时 (6)假如开始日期为2012-09-09 10:00:00

Month(结束日期)-month(开始日期)的值为1个月

2.oracle sql语句中计算两个日期相差的语法 结束日期为:2013-5-27 11:20:47 开始日期为:2013-4-23 11:24:13

(1)Trunc(开始时间)-trunc(结束时间) 的值为34天(不加时分秒计算) (2)round(to_number(cast(结束日期 as date) - cast(开始日期 as date))) 的值为35天(加上时分秒计算 进行四舍五入)

(3)round(to_number(cast(结束日期 as date) - cast(开始日期 as date))*24) 的值为816小时 (加上时分秒计算 进行四舍五入)

(4)round(to_number(cast(结束日期 as date) - cast(开始日期 as date))*24*60) 的值为48957分钟 (加上时分秒计算 进行四舍五入)

3.Sql语句中db2和oracle 类型转换语法 (以int转char为例) (PINT为int类型) Db2 语法为:CHAR(PINT)

Oracle 语法为:CAST(PINT AS CHAR)

4.查询前100条数据

Db2 的语法为: FETCH FIRST 100 ROWS ONLY

Oracle 的语法为:where ROWNUM <= 100(在整体查询出来之后再加这个判断)

5.修改字段类型的脚本:

Db2的语法为:ALTER table TABLENAME alter column COLUMN1set data type VARCHAR(100);

Oracle 的语法为:ALTER TABLE TABLENAME MODIFY PRIVILEGE VARCHAR(100);

6.Oracle 中把时间字符串转换为时间类型的语法为:

to_date('2013-04-29 15:50:54','yyyy-mm-dd hh24:mi:ss')

to_date(to_char(2013-04-29 15:50:54,'YYYY-mm-dd'),'YYYY-mm-dd') 7.把非空列改为可为空列

Db2的语法为:ALTER TABLE TABLENAME ALTER COLUMN COLUMN1 DROP NOT NULL Oracle 的语法为:Alter Table TABLENAME Modify COLUMN1 VarChar2(100) null

读书之法,在循序而渐进,熟读而精思

8.oracle sql语句中应注意的语法: (1)给表起别名不能用 as 关键字

(2)字段名 <> '值'不包括为null值的数据

(3)字段类型为timestamp,在赋值的时候不能取时间.DATE() (4)检索出来的列名不能有重复 (5)日期字符串必须转换成日期格式

9.sql语句中当前时间

Db2 语法为:currenttimestamp Oracle 语法为:sysdate

10.随机获取n条记录

Db2:order by rand() fetch first 100 rows

Oracle:ORDERBY DBMS_RANDOM.VALUE 整体加上where rownum<=100

11.db2中时间加上或者减去2个小时的语法为: db2语法为:时间+2 HOURS oracle语法为:时间+2/24

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4