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/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    如果文中有什么错误,欢迎指出。以免更多的人被误导。
  • 相关阅读:
    2021,6,10 xjzx 模拟考试
    平衡树(二)——Treap
    AtCoder Beginner Contest 204 A-E简要题解
    POJ 2311 Cutting Game 题解
    Codeforces 990G GCD Counting 题解
    NOI2021 SDPTT D2T1 我已经完全理解了 DFS 序线段树 题解
    第三届山东省青少年创意编程与智能设计大赛总结
    Luogu P6042 「ACOI2020」学园祭 题解
    联合省选2021 游记
    Codeforces 1498E Two Houses 题解 —— 如何用结论吊打标算
  • 原文地址:https://www.cnblogs.com/chenze-Index/p/10062343.html
Copyright © 2011-2022 走看看