1.db2sql语句中计算两个日期相差的语法(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-0910:00:00Month(结束日期)-month(开始日期)的值为1个月2.oraclesql语句中计算两个日期相差的语法结束日期为:2013-5-2711:20:47开始日期为:2013-4-2311:24:13(1)Trunc(开始时间)-trunc(结束时间)的值为34天(不加时分秒计算)(2)round(to_number(cast(结束日期asdate)-cast(开始日期asdate)))的值为35天(加上时分秒计算进行四舍五入)(3)round(to_number(cast(结束日期asdate)-cast(开始日期asdate))*24)的值为816小时(加上时分秒计算进行四舍五入)(4)round(to_number(cast(结束日期asdate)-cast(开始日期asdate))*24*60)的值为48957分钟(加上时分秒计算进行四舍五入)3.Sql语句中db2和oracle类型转换语法(以int转char为例)(PINT为int类型)Db2语法为:CHAR(PINT)Oracle语法为:CAST(PINTASCHAR)4.查询前100条数据Db2的语法为:FETCHFIRST100ROWSONLYOracle的语法为:whereROWNUM=100(在整体查询出来之后再加这个判断)5.修改字段类型的脚本:Db2的语法为:ALTERtableTABLENAMEaltercolumnCOLUMN1setdatatypeVARCHAR(100);Oracle的语法为:ALTERTABLETABLENAMEMODIFYPRIVILEGEVARCHAR(100);6.Oracle中把时间字符串转换为时间类型的语法为:to_date('2013-04-2915:50:54','yyyy-mm-ddhh24:mi:ss')to_date(to_char(2013-04-2915:50:54,'YYYY-mm-dd'),'YYYY-mm-dd')7.把非空列改为可为空列Db2的语法为:ALTERTABLETABLENAMEALTERCOLUMNCOLUMN1DROPNOTNULLOracle的语法为:AlterTableTABLENAMEModifyCOLUMN1VarChar2(100)null8.oraclesql语句中应注意的语法:(1)给表起别名不能用as关键字(2)字段名'值'不包括为null值的数据(3)字段类型为timestamp,在赋值的时候不能取时间.DATE()(4)检索出来的列名不能有重复(5)日期字符串必须转换成日期格式9.sql语句中当前时间Db2语法为:currenttimestampOracle语法为:sysdate10.随机获取n条记录Db2:orderbyrand()fetchfirst100rowsOracle:ORDERBYDBMS_RANDOM.VALUE整体加上whererownum=10011.db2中时间加上或者减去2个小时的语法为:db2语法为:时间+2HOURSoracle语法为:时间+2/24