Let's go

MySQL函数

目录

 

一丶【LPAD和RPAD】填充字符串函数

LPAD(str,len,padstr)

用字符串 padstr对 str进行左边填补直至它的长度达到 len个字符长度,然后返回 str。如果 str的长度长于 len',那么它将被截除到 len个字符。

SELECT LPAD('hi',4,'??'); -> '??hi'

RPAD(str,len,padstr)

用字符串 padstr对 str进行右边填补直至它的长度达到 len个字符长度,然后返回 str。如果 str的长度长于 len',那么它将被截除到 len个字符。

SELECT RPAD('hi',5,'?'); -> 'hi???'

 二丶IFNULL函数

IFNULL(expression_1,expression_2);
如果expression_1不为NULL,则IFNULL函数返回expression_1; 否则返回expression_2的结果。
SELECT IFNULL(1,0); -- returns 1
  • IFNULL(1,0)返回1,因为1不为NULL。
  • IFNULL('',1)返回'',因为''字符串不为NULL
  • IFNULL(NULL,'IFNULL function')返回IFNULL函数字符串,因为第一个参数为NULL。

 判断数据库字段不为NULL也不为“”处理--->where ifnull(field, '' ) <> ''   【field是数据库字段】

三丶DATE_FORMAT函数

DATE_FORMAT(date,format)

DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据 

下面的脚本使用 DATE_FORMAT() 函数来显示不同的格式。我们使用 NOW() 来获得当前的日期/时间:

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')

结果类似:

Dec 29 2008 11:45 PM
12-29-2008
29 Dec 08
29 Dec 2008 16:25:46.635

 

四丶 TIMESTAMPDIFF

语法: TIMESTAMPDIFF(unit,begin,end); 根据单位返回时间差,对于传入的begin和end不需要相同的数据结构,可以存在一个为Date一个DateTime 

单位:

  • MICROSECOND
  • SECOND
  • MINUTE
  • HOUR
  • DAY
  • WEEK
  • MONTH
  • QUARTER
  • YEAR

举例:

例1:求2017-01-01 - 2017-02-01 之间有几个月

SELECT TIMESTAMPDIFF(MONTH, '2017-01-01', '2017-02-01') as  result;

+--------+
| result |
+--------+
| 1 |
+--------+
row in set (0.00 sec)

例2:求 2017-01-01 - 2017-02-01 之间有几天

SELECT TIMESTAMPDIFF(DAY, '2017-01-01', '2017-02-01') as  result;

+--------+
| result |
+--------+
| 31 |
+--------+
row in set (0.00 sec)

例3:2017-01-01 08: 00:00 - 2017-01-01 08: 55:00 之间有几分钟

SELECT TIMESTAMPDIFF(MINUTE, '2017-01-01 08:00:00', '2017-01-01 08:55:00') result;

+--------+
| result |
+--------+
| 55 |
+--------+
row in set (0.00 sec)

例4:求 2017-01-01 08: 00:00 - 2017-01-01 08: 55:33 之间有几分钟

SELECT TIMESTAMPDIFF(MINUTE, '2017-01-01 08:00:00', '2017-01-01 08:55:33') result;

+--------+
| result |
+--------+
| 55 |
+--------+
row in set (0.00 sec)

例5:对于 SECOND 会怎样计算呢

SELECT TIMESTAMPDIFF(SECOND, '2017-01-01 08:00:00', '2017-01-01 08:55:33') result;
8 * 60 + 33 = 3333
+--------+
| result |
+--------+
|   3333 |
+--------+
row in set (0.00 sec)

 

posted @ 2018-12-04 09:49  chenze  阅读(186)  评论(0编辑  收藏  举报
有事您Q我