函数:每个DBMS都有特定的函数。

举例说明:DBMS函数的差异

函数

语法

提取串的组中部分



数据类型转换
Access使用MID();
DB2、Oracle和PostgreSQL使用:SUBSTR();
MySQL,SQL Server和Sybase使用SUBSTRING()

Access和Oracle使用多个函数,每种类型的转换都有一个函数;
DB2和PostgreSQL使用CAST():
MySQL、SQL Server和Sybase使用CONVERT()

 

常用文本处理函数:

函 数

说明

LEFT()(或使用子字符串函数)返回串左边的字符
LENGTH()(也使用DATALENGTH()或LEN()返回串的长度
LOWER()(Access使用LCASE())将串转换为小写
LTRIM()去掉串左边的空格
RIGHT()(或使用子字符串函数)返回串右边的字符
RTRIM()去掉串右边的空格
SOUNDEX()(Access和PostgreSQL不支持)返回串的SOUNDEX值
UPPER()(Access使用UCASE())将串转换为大写

 

日期和时间处理函数:

     日期和时间值采用相应的数据类型存储在表中,每种DBMS都有自己的变体;日期和时间值 以特殊的格式存储,以便能够快速和有效地排序或过滤并节省存储空间。不幸的是,它们很不一致,可移植性最差。

SQL Server和Sybase及Access版本使用的DATEPART(),有两个参数,它们分别是返回的成分和从中返回成分的日期。

SQL Server和Sybase版本:

SELECT order_num

FROM orders

WHERE DATEPART(yy,order_date)=2004

 

ACCESS版本:

SELECT order_num

FROM orders

WHERE DATEPART(‘yyyy’,order_date)=2004

 

PostgreSQL使用:DATE_PART()

SELECT order_num

FROM orders

WHERE DATE_PART(‘year’,order_date)=2004

 

MYSQL具有各种日期处理函数:

YEAR()从日期中提取年份:

SELECT order_num

FROM orders

WHERE YEAR(order_date)=2004

 

Oracle:

SELECT order_num

FROM orders

WHERE to_number(to_char(order_date,’yy’))=2004

 

数值处理函数:

  数值函数是主要DBMS的函数中最一致最统一的函数。常用的数值处理函数如下:

函数说明
ABS()返回一个数的绝对值
COS()返回一个角度的余弦
EXP()返回一个数的指数值
PI()返回圆周率
SIN()返回一个角度的正弦
SQRT()返回一个数的平方根
TAN()返回一个角度的正切