几种数据库比较,Oracle,SQLServer,Symfoware,DB2,SYBASE
发布时间:
函数比较:
>>>>>分类名
单行的函数
数值函数字符函数日期函数变换函数其它函数
统计函数
数学函数:
>>>>>Function
ArctangentofnandmSmallestinteger>=valueHyperboliccosineNaturallogarithmLogarithm,anybaseLogarithm,base10Modulus(remainderRandomnumberHyperbolicsineHyperbolictangentTruncate
LargestnumberinlistSmallestnumberinlistConvertnumberifNULLLargestintegernumber四舍五入
Oracle
ATAN2CEILCOSHLNLOG(NLOG(10MODN/ASINHTANHTRUNCGREATESTLEASTNVLFloorRound
>>>>>要点:
1.由于各种数据库判断Null的方法不同,所以开发时对应DBMS分开处理。DBMS支持SQL92规定的SQL函数coalesce(时这些操作都封装在getNvlSqlString(StringstrColName,StringstrDefaultValue中,用这个方法可得到相应数据库处2.Symfoware数据库中没有取余函数,可以使用cast和floor组合来取余,例如:cast(empno-floor(empno/3*3asint字符函数:
Function
字串连接
把ASCII转换为字符
返回字符串中的开始字符(左起)填充字符串的左边
字符串中的起始模式(pattern)多次重复字符串重复空格的字串
从数字数据转换为字符数据子串
替换字符
将字串中的每个词首字母大写翻译字符串字符串长度
列表中最大的字符串列表中最小的字符串
CONCATCHRINSTRLPADINSTRRPADRPADTO_CHARSUBSTRREPLACEINITCAPTRANSLATELENGTHGREATESTLEAST
Oracle
>>>>>如果为NULL则转换字串把字符串变为日期把字符变为数字NVL
To_dateTo_number
要点:
1.由于各种数据库判断Null的方法不同,所以开发时对应DBMS分开处理。DBMS支持SQL92规定的SQL函数coalesce(时这些操作都封装在getNvlSqlString(StringstrColName,StringstrDefaultValue中,用这个方法可得到相应数据库处2.注意oracle中取字符子串的方法名与其他数据库不一样日期函数:
>>>>>Function
日期相加两个日期的差
Oracle
(date_column+/-value
ADD_MONTHS(date_column,value(datecolumn+/-valueorMONTHS_BETWEENSYSDATE
当前日期和时间一个月的最后一天时区转换
日期后的第一个周日代表日期的字符串代表日期的整数
日期舍入日期截断
字符串转换为日期
如果为NULL则转换日期
日期的取整(四舍五入中的舍)
LAST_DAYNEW_TIMENEXT_DAYTO_CHAR>>>>>TO_NUMBER(TO_CHARROUNDTRUNCTO_DATENVLrngc
要点:
1.由于各种数据库判断Null的方法不同,所以开发时对应DBMS分开处理。DBMS支持SQL92规定的SQL函数coalesce(时这些操作都封装在getNvlSqlString(StringstrColName,StringstrDefaultValue中,用这个方法可得到相应数据库处
2.各种数据库得到系统时间的方法不同,所以开发时对应DBMS分开处理。Symfoware数据库中,
current_date--系统日期;current_time--系统时间;current_timestamp--系统日期和时间
这些形式都封装在getSysdateName(中,用这个方法可得到相应数据库的系统时间方法
3.各种数据库对日期加减计算的表示是不同的,所以开发时对应DBMS分开处理。这些表现形式都封装在getAddDay用这个方法可以得到相应数据库的日期加减方法的表示
转换函数:
Function
数字转换为字符字符转换为数字日期转换为字符字符转换为日期16进制转换为2进制2进制转换为16进制
Oracle
TO_CHARTO_NUMBERTO_CHARTO_DATEHEX_TO_RAWRAW_TO_HEX
要点:
各种数据库中类型转换方法可通过PreparedStatement.setXXX(做成不依靠DBMS的处理.
其他单行函数:
>>>>>Function
返回第一个非空表达式当前序列值下一个序列值
如果exp1=exp2,返回null用户登录账号ID数字用户登录名
用户数据库ID数字用户数据库名
用户环境(audittrail在CONNECTBY子句中的级别
Oracle
DECODECURRVALNEXTVALDECODE>>