zoukankan      html  css  js  c++  java
  • 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)
    作者:chenze
    出处:https://www.cnblogs.com/chenze-Index/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    如果文中有什么错误,欢迎指出。以免更多的人被误导。
  • 相关阅读:
    DOM属性(childNodes, nodeType, nodeValue, nodeName, firstChild, lastChild)
    ImageCopyResampled和ImageCopyResized区别
    Js中 关于top、clientTop、scrollTop、offsetTop等
    js笔记之Math random()、ceil()、floor()、round()
    linux下软件安装
    风云的博客地址
    hasOwnProperty 方法
    Javascript的匿名函数
    [转载]JS拖动技术 关于setCapture
    利用jquery的imgAreaSelect插件实现图片裁剪示例
  • 原文地址:https://www.cnblogs.com/chenze-Index/p/10062343.html
Copyright © 2011-2022 走看看