MySQL数据库08——函数使用

Mysql中也有很多函数,主要是类型转化函数,日期函数,数值函数,字符函数,下面一一介绍。


类型转化函数

1、CONVERT( )函数

CONVERT( )函数的语法格式为:

CONVERT(value, type)

其中,type为数据类型,但是要特别注意,可以转换的数据类型是有限制的。这个类型以下值其中的一个:

  1. 二进制,BINARY[(N)];
  2. 字符型,CHAR[(N)];
  3. 日期:DATE;
  4. 时间:TIME;
  5. 日期时间型:DATETIME;
  6. 浮点数:DECIMAL;
  7. 整数:SIGNED[INTEGER];
  8. 无符号整数:UNSIGNED[INTEGER]

使用CONVERT函数将字符串转换成整数。

SELECT CONVERT('12345',SIGNED);

2、CAST( )函数

CAST( )函数的语法格式为:

CAST(value  AS  type)

其中,type为数据类型。

使用CAST函数将字符串转换成整数。

SELECT CAST('12345'  AS  signed)

 


日期函数

1、获取当前日期、时间的函数

使用CURDATE( )、CURTIME()函数可获取当前日期、当前时间的函数。

使用时间函数获取系统当前日期和时间。

SELECT CURDATE() AS 当前日期, CURTIME() AS  当前时间

另外,MySQL还有CURRENT_DATE、CURRENT_TIME、CURRENT_TIMESTAMP、LOCALTIME、NOW、SYSDATE等函数,可用来返回包含日期和时间的数据。

CURRENT_DATE:根据返回值所处上下文是字符串或数字,返回以'YYYY-MM-DD'或YYYYMMDD格式表示的当前日期值 ;

CURRENT_TIME:根据返回值所处上下文是字符串或数字,返回以'HH:MM:SS'或HHMMSS格式表示的当前时间值;

NOW\SYSDATE\CURRENT_TIMESTAMP\LOCALTIME:根据返回值所处上下文是字符串或数字,返回以'YYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS 格式表示的当前日期时间()

2、时间戳函数

UNIX_TIMESTAMP:返回一个Unix时间戳(从'1970-01-01 00:00:00'GMT开始的秒数,date默认值为当前时间);

FROM_UNIXTIME:将时间戳转换为'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS格式表示的值;

3、取日期中部分值的函数

YEAR(date):返回date的年份(范围在1000到9999);

MONTH(date):返回date的月份数值;

DAY(date):返回date的天数值;

HOUR(date):返回date的小时数(范围是0到23);

MINUTE(date):返回date的分钟数(范围是0到59);

SECOND(date):返回date的秒数(范围是0到59);

TO_DAYS(date):返回从西元0年至date的天数(不计算1582年以前);

FROM_DAYS(N):返回距西元0年N天的日期值(不计算1582年以前);

DAYOFWEEK(date):返回date是星期几(1=星期天,2=星期一,……7=星期六);

WEEKDAY(date):返回date是星期几(0=星期一,1=星期二,……6= 星期天);

DAYOFMONTH(date):返回date是一月中的第几日(在1到31范围内);

DAYOFYEAR(date):返回date是一年中的第几日(在1到366范围内));

DAYNAME(date):返回date是星期几(按英文名返回);

MONTHNAME(date):返回date是几月(按英文名返回);

QUARTER(date):返回date是一年的第几个季度;

WEEK(date,first):返回date是一年的第几周(first默认值0,first取值1表示周一是周的开始,0从周日开始)。

日期运算函数

日期运算函数要对日期时间进行加减运算,有以下几个函数:

DATE_ADD(date,INTERVAL expr type):

DATE_SUB(date,INTERVAL expr type)

ADDDATE(date,INTERVAL expr type)

SUBDATE(date,INTERVAL expr type)

其中ADDDATE()和SUBDATE()是DATE_ADD()和DATE_SUB()的同义词,也可以用运算符+和-进行运算。

在上面4个函数中,date是一个DATETIME或DATE值,expr对date进行加减法的一个表达式字符串,type指明表达式expr应该如何被解释。

type可取以下值:

SECOND:表示按秒运算,expr为整数值;

MINUTE 表示按分钟运算,expr为整数值;

HOUR:表示按小时运算,expr为整数值;

DAY:表示按天运算,expr为整数值;

MONTH:表示按月运算,expr为整数值;

YEAR:表示按年运算,expr为整数值

MINUTE_SECOND:表示按分钟和秒进行运算,expr为字符串,如 "MINUTES:SECONDS";

HOUR_MINUTE:表示按小时和分钟进行运算,expr为字符串,如 "HOURS:MINUTES";

DAY_HOUR:表示按天和小时进行运行,expr为字符串,如  "DAYS HOURS";YEAR_MONTH:表示按年和月进行运算,expr为字符串,如 "YEARS-MONTHS"

HOUR_SECOND:表示按小时, 分钟进行运算,expr为字符串,如 "HOURS:MINUTES:SECONDS"

DAY_MINUTE:表示按天, 小时, 分钟进行运算,expr为字符串,如 "DAYS HOURS:MINUTES"

DAY_SECOND:表示按天, 小时, 分钟, 秒进行运算,expr为字符串,如"DAYS HOURS:MINUTES:SECONDS"

例如使用时间函数计算后天的这个时间再往后推2小时的值。

后天(即当前日期增加2天)再往后推小时时,其运算字符串的“2 2”,使用DAY_HOUR类型进行运算。因此,SQL语句如下所示:

SELECT NOW() AS 当前日期时间值, DATE_ADD(NOW(),INTERVAL "2 2" DAY_HOUR) AS  运算结果

 


数值函数

函数

参数

说明

ABS

(number)

返回绝对值

CEIL

(number)

返回与给定参数相等或比给定参数大的最小整数

COSSINTAN

(number)

返回给定角度(以弧度为单位)的三角余弦值、正弦值和正切值

ACOSASINATAN

(number)

返回给定角度的反余弦值、反正弦值和反正切值

EXP

(number)

返回eX乘方后的值(自然对数的底)

FLOOR

(number)

返回不大于X的最大整数值

LN

(number)

返回给定参数的自然对数

LOG

(base, number)

返回给定数值的以 base 为底的对数。

LOG10

(number)

返回X的基数为10的对数

MOD

(n,m )

返回 n m 的模。

PI

()

返回 π (pi)的值。默认的显示小数位数是7位,MySQL内部会使用完全双精度值

POWER

(x , y)

返回 x y 次方。

RADIANS

(number)

返回number由度转化为弧度的值

RAND

()

返回一个0-1之间的随机浮点值

ROUND

(number , length)

返回 number,并四舍五入为指定的长度或精度。

SIGN

(number)

返回给定数值的正 (+1)、零 (0) 或负 (-1) 号。

SQRT

(number)

返回给定数值的平方根。

TRUNCATE

(number , decimal-pluces)

返回值为按decimal-pluces截断的给定数值


字符函数

函数

参数

说明

ASCII

(string)

返回值为字符串string的最左字符的数值

BIN

(number)

返回值为number的二进制值的字符串表示

CHAR

(number,...)

返回与所给数值参数相等的字符。

CONCAT

(string1,string2)

返回字符串连接结果。

INSTR

(input_string,search_string[,n[,m]])

从输入字符串的第n个字符开始查找搜索字符串的第m次出现

LENGTH

(string)

返回输入字符串的字符数。

LOWER\LCASE

(string)

将输入字符串全部转换为小写字母。

LPAD

(string, n [,pad_chars])

在输入字符串的左边填充上pad_chars指定的字符,将其拉深至n个字符长。

LTRIM

(string)

从输入字符串中删除所有前导空格,即左边的空格。

NLSSORT

(string)

对输入字符串的各个字符进行排序。

REPLACE

(string , search_string [,replace_string])

将输入字符串中出现的所有search_string都替换为replace_string,如果不指定replace_string,则删除全部search_string

RPAD

(string, n [,pad_chars])

在输入字符串的右边填充上pad_chars指定的字符,将其拉深至n个字符长。

RTRIM

(string)

从输入字符串中删除右边的所有空格。

SUBSTR

(string , start [, length])

返回输入字符串中从第start位开始length长的一部分。

UPPER

(string)

将输入字符串全部转换成大写字母。

 


更改NULL值

MySQL中对应SQL Server的ISNULL函数的是IFNULL函数。下面通过一个例题说明其用法。

试验MySQL中的IFNULL函数,将C2字段的所有NULL值显示为0。

SELECT c1,  IFNULL(c2,0)
FROM  testnull;

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阡之尘埃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值