您当前的位置: 站长圈 > 数据库技术

MySQL函数——其他函数

来源:站长圈|0 作者:adminzzq 点击: 0
1、格式化函数EORMAT(x,n)
EORMAT(x,n)将数字x格式化,并四舍五入的方式保留小数点n位,结果以字符串形式返回。若n为0,则返回结果函数不含小数部分。
例:使用FORMAT函数格式化数字,保留小数点位数为指定值,SQL语句如下:
图1
执行后得:

由结果可以看到,保留指定位数的小数点,并四舍五入,当小数点不够倍数时,用0补齐,当n为0时,四舍五入后不保留小数位值。
2、不同进制的数字进行转换的函数
CONV(N,from_base,to_base)函数进行不同进制数间的转换。返回值为数值N的字符串表示,由from_base进制转化为to_base进制。如有任意一个参数为NULL,则返回值为NULL。自变量N被理解为一个整数,但是可以被指定为一个整数或字符串。最小基数为2,而最大基数则为36。
例:使用CONV函数在不同进制数值之间转换,SQL语句如下:

执行后得:

CONV( 'a', 16, 2 )将十六进制的a转换为2进制表示的数值,十六进制的a表示十进制的数值10,二进制的数值1010正好也等于十进制的数值10。
进制说明:
      二进制:采用0和1两个数字来表示的数,它以2为基数,逢二进一。
      八进制:采用0,1,2,3,4,5,6,7八个数字,逢八进一,发数字0开头。
      十进制:采用0-9共十个数字表示,逢十进一。
      十六进制:它由0-9、A-F组成。与十进制的对应关系是:0-9对应0-9;A-F对应10-15。以数字0x开头。
3IP地址与数字相互转换的函数
INET_ATON(expr)给出一个作为字符串的网络地址的点地址表示,返回一个代表该地址数值的整数。地址可以是4或8比特地址。
例:使用INET_ATON()函数将字符串网络点地址转换为数值网络地址,SQL语句如下:

执行后得:

产生的数字按照网络字节顺序。如上面的例子,其计算方法为:209×2563+207×2562+244×2561+40×2560
INET_NTOA(expr)给定一个数字网络地址(4或8比特),返回作为字符串的该地址的点地址表示。
例:使用INET_NTOA函数将数值网络地址转换为字符串网络点地址,SQL语句如下:

执行后得:

可以看到,INET_ATON()和INET_NTOA()互为反函数。
4、重复执行指定操作函数
BENCHMARK(count,expr)函数重复count次执行表达式expr。电脑可以用于计算MySQL处理表达式的速度。结果值通常为0(0只是表示处理过程很快,并不是没有花费时间)。另一个作用是它可以在MySQL客户端内部报告语句执行的时间。
例:使用BENCHMARK()重复执行指定函数,SQL语句如下:

执行后得:

5、改变字符集的函数
CONVERT(…USING…)带有USING的VONVERT()函数被用来在不同的字符集之间转化数据。
例:使用CONVERT()函数改变字符串的默认字符集,SQL语句如下:

执行后得:

6、改变数据类型的函数
CAST(x,AS type)和CONVERT(x,type)函数将一个类型的值转换为另一个类型的值,可转换的type有:BINARY、CHAR(n)、DATE、TIME、DATETIME、DECIMAL、SIGNED、UNSIGNED。
例:使用CAST和CONVERT函数进行数据类型的转换,SQL语句如下:

执行后得:

CAST( 100 AS CHAR( 2 ) )将整数数据100转换为带有2个显示宽度的字符串类型,其结果为10;CONVERT( '2010-10-01 12:12:12', TIME )将DATETIME类型的值转换为TIME类型的值,其结果为12:12:12。