SQL常用语句2——截取字符,连接字符,数据类型的转换

1、substring() 截取字符串,截取数据库某一列字段中的一部分

MySQL: SUBSTR( ), SUBSTRING( )

Oracle: SUBSTR( )
SQL Server: SUBSTRING( ) ;

方法:

SBUSTR(str,pos);
从pos开始的位置,一直截取到最后。

 

SUBSTR(str,pos,len);
从pos开始的位置,len 字符长度(空白也算字符)。

 

2、concat()将多个字符连接成一个字符串

MySQL

方法:

select concat(str1,str2) from t_user;

(其中str1和str2是t_user表的两个字段)

如果 str1为null,str2为"aaa",返回的结果为null,那么则需要这样写:

select concat(ifnull(str1,"defaultvalue"),str2) from t_user

3.类型的转换问题

cast和 convert转换函数(显式)

1、将Int 转为varchar经常用 concat函数,比如concat(8,’0′) 得到字符串 ‘80′。

2、将varchar 转为Int 用 cast(a as signed) a为varchar类型的字符串,signed为整数类型。

 

CAST(xxx AS 类型)  as  列名 from 表名

CONVERT(xxx,类型) as  列名 from 表名

二进制,同带binary前缀的效果 : BINARY

字符型,可带参数 : CHAR()

日期 : DATE

时间: TIME

日期时间型 : DATETIME

浮点数 : DECIMAL

整数 : SIGNED

无符号整数 : UNSIGNED

 

举例

栗子1:将日期转为整数型

表table1

date:2015-11-03 15:31:26

select cast(date as signed) as date from  table1;

结果为:

date:20151103153126

 

栗子2:将整数转为decimal 数据类型

表table2

num:20

select cast(num as decimal(10, 2)) as num from table2

结果为:

num:20.00

解释:decimal 数据类型最多可存储 38 个数字,所有数字都能够放到小数点的右边.decimal 数据类型存储了一个准确(精确)的数字表达法;不存储值的近似值.其中10是小数点左边和右边的数字个数之和(不包括小数点),2代表小数点右边的小数位数或数字个数.decimal(10,2)可以存储8位整数2位小数的数字.

 

上一篇:Mysql decimal()


下一篇:分数化小数