MySQL常用函数

TIMESTAMPDIFF和TIMESTAMPADD函数

TIMESTAMPDIFF

语法:TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)。

说明: 返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差。其结果的单位由interval 参数给出。该参数必须是以下值的其中一个:

FRAC_SECOND。表示间隔是毫秒

SECOND。秒

MINUTE。分钟

HOUR。小时

DAY。天

WEEK。星期

MONTH。月

QUARTER。季度

YEAR。年

示例:select TIMESTAMPDIFF(day,’2012-08-24’,’2012-08-30’);

​ select TIMESTAMPDIFF(MINUTE,’2012-08-24 09:00:00’,’2012-08-30 12:00:00’);

TIMESTAMPADD

语法:TIMESTAMPADD(interval,int_expr,datetime_expr)

说明:将整型表达式int_expr 添加到日期或日期时间表达式 datetime_expr中。式中的interval和上文中列举的取值是一样的。

示例:select TIMESTAMPADD(MINUTE,8820,’2012-08-24 09:00:00’);

IFNULL

语法:IFNULL(expr1,expr2)

说明:如果 expr1 不是 NULL,IFNULL() 返回 expr1,否则它返回 expr2。 IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境。

示例:SELECT IFNULL(1,0);

​ SELECT IFNULL(1/0,’sample’);

MySQL中CONCAT函数

CONCAT

语法:CONCAT(str1,str2,…)

说明:返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。

示例:select concat(‘11’,’22’,’33’);

​ select concat(‘11’,’22’,null);

CONCAT_WS

语法:CONCAT_WS(separator,str1,str2,…)

说明:CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。‘

注意:如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。

​ 和MySQL中concat函数不同的是, concat_ws函数在执行的时候,不会因为NULL值而返回NULL

示例:select concat_ws(‘,’,’11’,’22’,’33’);

​ select concat_ws(‘,’,’11’,’22’,NULL);

GROUP_CONCAT

语法:group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段][Separator ‘分隔符’])

DATE_FORMAT()

语法:DATE_FORMAT(date,format)

说明:DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。date 参数是合法的日期。format 规定日期/时间的输出格式。

示例:DATE_FORMAT(NOW(),’%b %d %Y %h:%i %p’)

​ DATE_FORMAT(NOW(),’%m-%d-%Y’)

​ DATE_FORMAT(NOW(),’%d %b %y’)

​ DATE_FORMAT(NOW(),’%d %b %Y %T:%f’)

INSTR

语法:INSTR(str,substr)

说明:INSTR()函数返回字符串中子字符串第一次出现的位置。如果在str中找不到子字符串,则INSTR()函数返回零(0)。

INSTR函数接受两个参数:str是要搜索的字符串。substr是要搜索的子字符串。

INSTR()函数不区分大小写。这意味着如果通过小写,大写,标题大小写等,结果总是一样的。

示例:SELECT INSTR(‘MySQL INSTR’, ‘SQL’);

参考资料:http://zac110.iteye.com/blog/1582382

http://www.w3school.com.cn/sql/func_date_format.asp